编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
 
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
 16 12
发新话题
打印

初学者求教此程序

初学者求教此程序

刚开始学C,用的谭浩强的教材,对第一章的1.6的想自己做一个,但是编译后结果不正确,求指点一二
main ()
{int a,b,c,max;
printf("请输入3个数字 a,b,c:\n");
scanf("%d,%d,%d",&a,&b,&c);
if (a>b) a=max;
else b=max;
if (b>c) b=max;
else c=max;
printf("最大数是:%d\n",max);
getch();
}

TOP

没人顶,自己顶一下先,运行的时候无论什么数字都是1049,或者就是只出第一个数字为最大,不知道哪里的问题

TOP

呵呵~~你的程序有点问题吧。
if (a>b) a=max;
else b=max;
if (b>c) b=max;
else c=max;
===============================
如果a>b,应该是把a赋给max才对呀,怎么却把max赋给a呢?即不是a=max,而是max=a 。
以下的也是如此,把值赋给的对象颠倒了。

TOP

补充:
还有,a已经和b比较了,b和c也已经比较了,a和c 呢?还没有比较呀?
是不是先把其中的一个值赋给max,再拿来比较会更好些哦。

TOP

up
楼上

TOP

s1:a和b比较大小,将最大值赋给max
s2:将max和c比较,将最大值再赋给max;
s3:输出max

TOP

11

#include<stdio.h>
void fun(int *a,int *b,int *c)
{
int max,min,z;
if(*a>*b&&*a>*c)
    {
    max=*a;
    if(*b>*c){min=*c;z=*b;}
    else {min=*b;z=*c;}
    }
if(*b>*a&&*b>*c)
    {
    max=*b;
    if(*a>*c){min=*c;z=*a;}
    else {min=*a;z=*c;}
    }
if(*c>*a&&*c>*b)
    {
    max=*c;
    if(*a>*b){min=*b;z=*a;}
    else {min=*a;z=*b;}
    }
*a=max;
*b=z;
*c=min;
}
main()
{int x,y,z,max,min;
printf("请输入3个整数:");
scanf("%d%d%d",&x,&y,&z);
fun(&x,&y,&z);
max=x;
min=z;
printf("max=%d,min=%d\n",max,min);
}

TOP

#include <stdio.h>

int main()
{
    int a,b,c;
    printf("please enter a b c:\n");
    scanf("%d%d%d",&a,&b,&c);
    if(b>a) a=b;
    if(c>a) a=c;
    printf("%d\n",a);
    getch();
    }

TOP

赋值运算符要弄清楚~~~么

TOP

6楼描述的算法很明确。

TOP

 16 12
发新话题