| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1865 人关注过本帖
标题:求三个数的最大数的问题
只看楼主 加入收藏
红色政权
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2010-1-17
收藏
得分:0 
这是书上的正确答案,但我理解不了:


main()
{
  int a,b,c,max;
  printf("请输入三个数 a,b,c:\n");
  scanf("%d,%d,%d",&a,&b,&c);
   
  max=a;
  if(max<b)  max=b;
  if(max<c)  max=c;
  printf("最大的数为:%d",max);
}

这是老谭书上写的正确答案,但我总是理解不了```````````
2010-01-21 22:18
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:15 
main()
{
  int a,b,c,max;
  printf("请输入三个数 a,b,c:\n");
  scanf("%d,%d,%d",&a,&b,&c);
   
  max=a;                             //a作为初始最大值
  if(max<b)  max=b; ;                 //如果 b>“初始最大值”max ,那么b作为新的最大值,此时max中是 a和b中的大者 。

  if(max<c)  max=c;                     //再用“a和b中的大者”max和b比,如果c>“当前最大值”max,那么c作为新的最大值.到此处才真正求出最大值

  printf("最大的数为:%d",max);        // 最后输出最大值
}
希望上边的解释对你有些帮助。
2010-01-21 22:34
红色政权
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2010-1-17
收藏
得分:0 
非常正确,我知道了,谢谢  kwxx                         看到了你这句话,"……此时max中是 a和b中的大者 。……"


我就理顺关系了。。。。。谢谢
2010-01-21 22:39
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%d\n",c>(a>b?a:b)?c:(a>b?a:b));
    return 0;
}

That is it.

2010-01-21 23:05
Devon_Ye
Rank: 4
来 自:广东
等 级:业余侠客
帖 子:124
专家分:282
注 册:2010-1-7
收藏
得分:0 
kxll 解释耐心,顶
2010-01-22 08:59
邶风
Rank: 5Rank: 5
等 级:职业侠客
帖 子:287
专家分:335
注 册:2009-1-20
收藏
得分:0 
printf("%d",max(max(a,b),c));


#include
2010-01-22 09:34
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
max=(c>=((a>=b)?a:b)?c:((a>=b)?a:b);不就行了!

★★★★★为人民服务★★★★★
2010-01-22 13:19
lele2010
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:84
专家分:121
注 册:2010-1-23
收藏
得分:0 
顶14楼的!

喜欢结交更多C语言学习者,QQ:1093027367
2010-01-23 11:48
doubleflygo
Rank: 2
等 级:论坛游民
帖 子:26
专家分:50
注 册:2010-1-22
收藏
得分:5 
max=a;
if (max<b)        /*  如果  max<b,那么把b赋值给max并输出b的值,那如果  a<b<c呢?,,输出不是有问题了?   */
    max=b;
if (max<c)        /*  如果  max<c,那么把b赋值给max并输出c的值,那如果  a<c<b呢?,,输出不是有问题了?   */
    max=c;
想想:第一个if运行之后,是从a,b之中将大者赋值于max,以你的理解程序到这里就输出max了,但是他还有一个if,而不是else,所以这是两条语句;这样连贯起来,理解应该没有困难了吧。。。
2010-01-23 12:16
红色政权
Rank: 1
等 级:新手上路
帖 子:28
专家分:2
注 册:2010-1-17
收藏
得分:0 
回复 19楼 doubleflygo
谢谢,你分析的很透切

看来我还没有明确

if  语句  和if  else语句之间的区别
2010-01-23 12:31
快速回复:求三个数的最大数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020755 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved