jishuzhain 发表于 2015-6-25 16:26:52

if else 语句有些问题。得不到想要的结果

#include<stdio.h>
int main()
{
        int a, b, c, d, t;
        scanf("%d%d%d%d",&a,&b,&c,&d);
        if(a>b)
        {
                t=b;
                b=a;
                a=t;
        }
        if(b>c)
        {
                t=c;
                c=b;
                b=t;
        }
        if(a>c)
        {
                t=c;
                c=a;
                a=t;
        }
//        printf("%d %d %d\n",a,b,c);

//后面是通过第四个数来对整个前三个已经排好序的数进行 排序,,用if else 是判断哪种情况,但是出现问题,
        if(d<a)
                printf("%d %d %d %d\n",d,a,b,c);
                else
       
                        if(a<d && d<c)
                        printf("%d %d %d %d\n",a,d,b,c);
       
                        else
       
       
                                if(b<d && d<c)
                                printf("%d %d %d %d\n",a,b,d,c);
                       
                                        else
       
                                                printf("%d %d %d %d\n",a,b,c,d);
        return 0;

}


ANDES 发表于 2015-6-25 18:29:56

你下面那个开始判断第四个数就出错了,你的思路本身就是错的,你前面三个的排序是对的,为什么到了第四个你就不交换位置,难道你认为你前面三个排好了,第四个就会自动排好了?还有,你的if-else用错了。if-else是判断两种情况,要么是什么(if),要么就是什么(else)。像这种情况,可以用if-else if-else,要么是什么(if),或者是什么(else if ),或者是什么(else);用if-else if-else,中间可以加很多个else if。

x15810803158 发表于 2015-6-26 09:14:23

同上   第四个数也应该交换位置

jishuzhain 发表于 2015-6-27 12:20:00

ANDES 发表于 2015-6-25 18:29
你下面那个开始判断第四个数就出错了,你的思路本身就是错的,你前面三个的排序是对的,为什么到了第四个你 ...

我已经解决了,谢谢

jishuzhain 发表于 2015-6-27 12:21:02

x15810803158 发表于 2015-6-26 09:14
同上   第四个数也应该交换位置

已经解决,谢啦
页: [1]
查看完整版本: if else 语句有些问题。得不到想要的结果