C语言初学,想请教各位大哥一个问题

题目:输入a,b,c三个值,输出其中最大值我的答案:#includeint main(){ int a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); if(a>b,a>c)max=a; printf("max=%d\n",max); return 0;}结果是max总是等于输入的第一个数 也就是等于a 我怀疑是if语句出了问题 但不懂出在哪 求各位高人指点迷津

第一,你输入数据时,中间要经逗号分隔,如:3,5,2
第二,你的if语句确实有问题
if(a>b,a>c)max=a; 这时,只要a>c就会max=a
因此应该改正,,改成如下:
if( a>b && a>c ) max=a ;
else if ( b>a&& b>c ) max=b ;
else max=c ;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-14
这里涉及到一个知识点,就是逗号运算符的问题,逗号运算符的概念的只取最后一个运算式的结果,如题,你所编写的if语句中,先执行a>b,然后再执行a>c,最后也只是对a>c进行判断,与b无关了,另外if等语句都是逻辑判断性的语句,应该多使用一些逻辑运算符(&&,||,~等)比较好。还有,每个表达式下面最好用一对{}括起来,代码只有一行是无所谓的,但是有多行就会有许多不必要的麻烦,都是个人编码的风格,只是一些建议。至于修改,上面那位的就可以……
第2个回答  2013-07-14
你的头文件没有“#include<stdio.h>”,
结果是输入的时候,当a最大时,输出为a,否则输出的是个不确定的值。
if里面的条件不对,同时成立用的是“&&”这个符号。

我们的编译器不一定一样,前两个对你可能没有影响。
第3个回答  2013-07-14
if语句的确出了问题,你if语句()里面其实是一个逗号语法,逗号语法输出值是逗号后面的结果,所以只要a>c,max=a了。没起到判断a,b的结果。
至于正确答案,自己先想想吧,不经过自己思考是学不好计算机语言的。
相似回答