| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1296 人关注过本帖
标题:为什么这样也可以,呢(比较三个数的大小)
只看楼主 加入收藏
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
结帖率:60%
收藏
已结贴  问题点数:15 回复次数:12 
为什么这样也可以,呢(比较三个数的大小)
main()
{
    int a,b,c,max;
    scanf("%d%d%d",&a,&b,&c);
    max=a;
    if (max<b)max=b;
    if (max<c)max=c;
    printf("max=%d",max);
    getch();
}

我记得老师说过在if else中如果if条件不成立时且此时也没必要执行什么运算时,else 可以省去。但在此程序中若if不成立,好想要执行东西的啊!为什么也可以省去呢?
郁闷啊!让我说应该这样做
程序代码:
main()

{int   a,b,c,max;

scanf("%d,%d,%d",&a,&b,&c);

     if(a>b)

     max=a;

      else

          max=b;

     if(max>c)

       max=max;

       else

           max=c;

              printf("max=%d\n",max);
              getch();

   }


为什么呢?  望高手指点一二,还有就是此题我听人说可以用三目运算来做 怎么做呢?
搜索更多相关主题的帖子: max 
2010-07-18 14:12
zzz123890c
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2010-7-18
收藏
得分:1 
a>max?a:(b>c?(max=b):(max=c))
2010-07-18 14:28
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:1 
你运行一下不就知道了?if条件不满足,不是必须要执行东西的
2010-07-18 16:02
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:1 
三目运算是这样的:a>max?a:(b>c?(max=b):(max=c))
解答:
 main()
{
    int a,b,c,max;
    scanf("%d%d%d",&a,&b,&c);
    max=a;
    if (max<b)max=b;
    if (max<c)max=c;
    printf("max=%d",max);
    getch();
}
这个程序好像贪心法就是求最理想的,先把max=a,如果b>a就说明a<b那么就让max=b;如果c>max也就是c<b,那么就把max=c;最后打印出max就达到了目的

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-18 17:18
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:1 
如果你非得这么 考究
我提个建议 就去考究每个程序所占的内存 和 运行的效率
看一下 时间复杂度和空间复杂度

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-18 18:34
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
我顶顶楼上的

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-18 18:52
JackyZhang
Rank: 2
等 级:论坛游民
帖 子:82
专家分:29
注 册:2010-7-12
收藏
得分:0 
回复 5楼 do8do8do8
以后这种问题就不问了,不懂就不懂吧!

初生牛犊,望多多照顾!
2010-07-18 19:34
daxuezdj7
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2010-7-18
收藏
得分:1 
else 语句可以省去。如果在if不成立时,你还要执行一些语句,就需要else。你上面的程序,并没有在语句if不成立时,去执行其他语句。if (max<b)max=b;这是一句,后面就是省略了else语句


[ 本帖最后由 daxuezdj7 于 2010-7-18 20:13 编辑 ]
2010-07-18 20:09
peace1221
Rank: 2
等 级:论坛游民
帖 子:32
专家分:35
注 册:2010-7-9
收藏
得分:1 
这可以看成是两个if语句
2010-07-18 21:39
xiaoliang_sh
Rank: 2
等 级:论坛游民
帖 子:18
专家分:11
注 册:2010-7-16
收藏
得分:1 
这个是两条命令啊if (max<b)max=b;
    if (max<c)max=c;,else当然可以省略,但是当第一个if命令判断完了不是就要执行第二个判断命令嘛

[ 本帖最后由 xiaoliang_sh 于 2010-7-18 22:20 编辑 ]
2010-07-18 22:16
快速回复:为什么这样也可以,呢(比较三个数的大小)
数据加载中...
 
   



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

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