C语言的问题

main()
{
int a,b,c,max;
printf("please input three number a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
max=a;
if(b>=max) max=b;
if(c>=max) max=c;
printf("the max is:%d\n",max);
}

三个数选出最大的一个 if(b>=max) max=b;
if(c>=max) max=c;
如果 b与c>a 的话 那么max>a还是max>b ?
另外 max=%d 与max is %d 有什么区别?

main()
{
int a,b,c,max; \\定义a,b,c,max四个变量
printf("please input three number a,b,c:\n"); \\提示输入
scanf("%d%d%d",&a,&b,&c);
max=a; \\ 先将a的值赋予max,即初始定义max=a
if(b>=max) max=b; \\如果b的值大于max,则把b的赋值给max,即max现在等于a和b中较大的值
if(c>=max) max=c; \\如果此时c的值大于max,则把c的赋值给max,即max现在等于a、b、c中最大的值
printf("the max is:%d\n",max); \\输出此时max的值
}

printf("the max =%d\n",max); \\输出:the max = 值
printf("the max is:%d\n",max); \\ 输出:the max is:值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-25
你补充的问题很简单,在printf里面的引号是直接输出字符的,
“=”和“is”是输出的字符,意思很容易理解
the max is:** 和the max=** 意思是一样的

“如果 b与c>a 的话 那么max>a还是max>b ?”
首先如果b>a,max就被赋值为b,这是当然max>a了
接下来如果c>a,并且c>b,max就被赋值为c了,也有max>b
第2个回答  2011-07-25
不太懂你的问题,这个算法是先假设最大值是a,如果b大于等于a,则把最大值设为b,然后再和c比较,取其中大者。如果b小于a,则将a和c比较,取其中大者。因为这两个if语句是独立的,中间没有else的关系,所以会连续执行下去。由于只是输出最大值,所以对于b和c谁更大并不关心。追问

最大值是a,如果b大于等于a,则把最大值设为b,然后再和c比较,取其中大者
没有与C比较的步骤啊?

追答

if(c>=max) max=c 这时候max已经等于b了,其值已经改变了。

本回答被提问者采纳
第3个回答  2011-07-25
b与c >a是什么意思?
max=%d 与max is %d 没区别 是原样输出的 改变的只是%d %d显示的是max的值追问

if(b>=max) max=b;
if(c>=max) max=c
如果B 大于等于MAX 那么MAX就是B
如果C大于等于MAX 那么MAX就是C啊
还有一种可能是B与C 都大于MAX 那么MAX应该等于B 还是C?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网