早教吧 育儿知识 作业答案 考试题库 百科 知识分享

输入ABC三个值输出其中最大者,整数我这么写成不仅限于C里面#include{inta,b,c,max;scantf("%d,%d,%d“,&a,&b,&c);max=(a>=b)?a:b;max=(b>=c)?b:c;printf("%dis",max);returun0;}可以这么写么?我感觉用条件运算符写的

题目详情
输入ABC三个值输出其中最大者,整数
我这么写成不
仅限于C里面
#include
{
int a,b,c,max;
scantf("%d,%d,%d“,&a,&b,&c);
max=(a>=b)?a:b;
max=(b>=c)?b:c;
printf("%d is",max);
returun 0;
}
可以这么写么? 我感觉用条件运算符写的简单 这样是否可以?
回答问题就成了 别复制其他的.谢谢
▼优质解答
答案和解析
首先,你的代码都没有通过编译,在scanf那一行有两个语法错误,一是scanf拼写错了,二是该用英文后引号的地方你用成了中文的引号.
然后回答你的逻辑错误问题:
max=(a>=b)?a:b;
max=(b>=c)?b:c;
这两行是不对的,第一行执行完毕max值为a和b的最大值,第二行执行完毕max值为b和c的最大值,那么第一行的作用就被忽略了,a的值也就不再影响结果了.这个代码做的事只是求b、c两个数的最大值.
例子:你输入“1,2,3”得到3,“3,2,1”得到2.
上述两行应该改为:
max=(a>=b)?a:b;
max=(max>=c)?max:c;