泡泡·↗忧伤 发表于 2015-10-23 19:16:22

C语言三数比较大小解决办法?

编写一个程序,输入3个数a,b,c,从小到大打印出对应的值;如a=2,b=1,c=3,则打印 最终结果是 1,2,3(备注:a,b,c的值不变)

注意 这个题说的是 adc 三个数的位置没有发生改变,也就是说不是用 互相调换位置出来的,

比如a = 3b = 2   c = 4

结果应该是    b=2<a=3 < c=4;

hiwch 发表于 2015-10-24 16:33:20

本帖最后由 ~风介~ 于 2015-10-26 13:40 编辑

这样应该可以你试试看:
#include<stdio.h>
void main()
{
        int a, b, c,temp;
        printf("请输入3个整数;");
        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\n",a,b,c);
}

~风介~ 发表于 2015-10-23 20:42:17

用一下if嵌套比较就可以了: 把最小的放在第一个输出, 依此类推。

桃花飞舞 发表于 2015-10-23 21:07:34

a和b比较如果a>b则交换a和b的值;b和c比较如果b>c交换b和c的值;a和b比较如果a>b则交换a和b的值;(仅供参考)

飞羽先生 发表于 2015-10-24 14:03:50

赋了值在赋回来不就好了

浮云骑士 发表于 2015-10-26 12:40:17

同三。

泡泡·↗忧伤 发表于 2015-10-31 20:54:15

不好意思 是大家没有理解我的意思,,我那个是abc 不能调换位置的,我已经会了,思路是求 出 最大值,在求出最小值然后 再让abc 来判断中间值,就可以了我贴出代码!int a,b,c;
//    printf("输入三个数来判断: \n");
//    scanf("%d%d%d",&a,&b,&c);
//    int max1 = a > b?a:b;
//    int max= max1 > c?max1:c;
//    int min1 = a < b?a:b;
//    int min= min1 < c?min1:c;
//    //上述我们判断了最大和最小数,下面我们只需要知道中间数就可以了,所一开始判断中间数!
//    if (a != max && a != min)
//    {
//      printf("关系式:%d < %d < %d \n",min,a,max);
//    }
//    if (b !=max && b !=min)
//    {
//      printf("关系式:%d < %d < %d \n",min,b,max);
//    }
//    if (c !=max && c !=min)
//    {
//      printf("关系式:%d < %d < %d \n",min,c,max);
//    }
//    printf("%d%d%d",a,b,c);
//   
页: [1]
查看完整版本: C语言三数比较大小解决办法?