| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2366 人关注过本帖, 1 人收藏
标题:关于if else相关问题
只看楼主 加入收藏
Pzzzzk
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-9-23
结帖率:100%
收藏(1)
 问题点数:0 回复次数:12 
关于if else相关问题
代码在此 要求输入三个整数然后按从大到小排列 怎么输出的是六个数

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int a,b,c;
   scanf("%d,%d,%d",&a,&b,&c);
   if(a>b)
   {
       if(b>c)
        {
            printf("%d,%d,%d",a,b,c);
        }
        if(c>a)
        {
            printf("%d,%d,%d",c,a,b);
        }
        else
        {
            printf("%d,%d,%d",a,c,b);
        }
   }
   if(b>a)
   {
      if(c>b)
      {
          printf("%d,%d,%d",c,b,a);
      }
      if(a>c)
      {
          printf("%d,%d,%d",b,a,c);
      }
      else
      {
          printf("%d,%d,%d",b,c,a);
      }
   }
}
2018-09-29 17:33
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:396
专家分:2640
注 册:2018-3-30
收藏
得分:0 

加上else就可以了
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
   int a,b,c;
   scanf("%d,%d,%d",&a,&b,&c);
   if(a>b)
   {
       if(b>c)
        {
            printf("%d,%d,%d",a,b,c);
        }
        else if(c>a)
        {
            printf("%d,%d,%d",c,a,b);
        }
        else
        {
            printf("%d,%d,%d",a,c,b);
        }
   }
   else if(b>a)
   {
      if(c>b)
      {
          printf("%d,%d,%d",c,b,a);
      }
      else if(a>c)
      {
          printf("%d,%d,%d",b,a,c);
      }
      else
      {
          printf("%d,%d,%d",b,c,a);
      }
   }
}

saber,别哭.
2018-09-29 17:39
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>

int main()
{
   int a,b,c;
   scanf("%d,%d,%d",&a,&b,&c);
   if(a>b)
   {
       if(b>c)
        {
            printf("%d,%d,%d",a,b,c);//b>c时执行这里
        }
        if(c>a)
        {
            printf("%d,%d,%d",c,a,b);
        }
        else
        {
            printf("%d,%d,%d",a,c,b);//b>c时同样会执行这里
        }
   }
   if(b>a)
   {
      if(c>b)
      {
          printf("%d,%d,%d",c,b,a);
      }
      if(a>c)
      {
          printf("%d,%d,%d",b,a,c);
      }
      else
      {
          printf("%d,%d,%d",b,c,a);
      }
   }
}
2018-09-29 17:40
Pzzzzk
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-9-23
收藏
得分:0 
好了,谢谢!!!
2018-09-29 18:03
Pzzzzk
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-9-23
收藏
得分:0 
回复 3楼 yangfrancis
抱歉,您的注释我没看明白 能详细解释一下吗 谢谢
2018-09-29 18:04
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
if
else if
else
2018-09-29 18:24
编程之客Vae
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2018-9-29
收藏
得分:0 
你们写的代码有点繁琐,其实可以简洁代码。
只需要用三个if就可以解决,if(a<b)此时成立则进行交换,if(b<c)此时成立进行交换,if(a<c)此时成立进行交换。
注意这三个if的条件顺序不能变且这三者是平行关系
2018-10-07 14:33
不二先生
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-10-7
收藏
得分:0 
回复 7楼 编程之客Vae
简单的?有啊!数组的冒泡循环就可以啊
2018-10-07 15:32
MeandC
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:245
专家分:792
注 册:2018-7-14
收藏
得分:0 
if和if 是并列的,上面的执行完了会往下执行。
if 和else if如果if成立了else if是会直接跳过的。
代码改成(后面那部分同理)
       if(b>c) printf("%d,%d,%d",a,b,c);
         else if(c>a)printf("%d,%d,%d",c,a,b);如果b>c成立了,else if这句就直接跳过了。
或者写成if(b>c) printf("%d,%d,%d",a,b,c);
        if(b<=c&&c>a) printf("%d,%d,%d",c,a,b);这样即使b>c成立了,后面这句还会接着判断。
建议是写第一种,这样执行效率更高。

C果然是有点难啊!
2018-10-07 15:58
编程之客Vae
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2018-9-29
收藏
得分:0 
#include "stdio.h"
void main()
{
    int a,b,c,temp;
    scanf("%d,%d,%d",&a,&b,&c);
    if(a>b)
    {
        temp = a;
        a = b;
        b = temp;        
    }
     if(a>c)
      {
        temp = a;
        a = c;
        c = temp;        
      }
     if(b>c)
      {
        temp = b;
        b = c;
        c = temp;        
      }
      
    printf("%d,%d,%d",a,b,c);
}
2018-10-08 09:54
快速回复:关于if else相关问题
数据加载中...
 
   



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

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