【C语言程序】任意输入3个数,将其从大到小排列输出(最详细介绍)

1.题目举例

写代码将三个整数数按从大到小输出。

例如:

输入:2 3 1

输出:3 2 1

2.代码实现(最方便)

#include <stdio.h>
int main()
{
    int a = 2;
    int b = 3;
    int c = 1;
    scanf("%d%d%d",&a, &b,&c);
    if(a<b)
    {
        int tmp = a;//使用tmp当作中间变量
        a = b;
        b = tmp;
    }
    if(a<c)
    {
        int tmp = a;
        a = c;
        c = tmp;
    }
    if(b<c)
    {
        int tmp = b;
        b = c;
        c = tmp;
    }
    printf("a=%d b=%d c=%d\n", a, b, c);
    return 0;
}

3代码讲解(解题思路)

  1. 将a.b.c三个随机数,按从大到小排序,依次为a>=b>=c.
  2. 先判断a<b,但是你想要a>b,怎么办呢?
  3. 那就采用赋值的方法,将大的b值赋值给a,a值赋值给b。
  4. 但是直接赋值a=b,b=a.没有变化,如题输入:2 3 1,把b==3赋值a,a==3;再把a==3赋值b,导致a,b相等。这时就需要一个临时变量(tap)
  5. 最后根据上述方法,再判断if(a<c),使得a>c,判断b和c的位置,使得b>c.

4.其他方法

#include <stdio.h>
int main()
{
    int a, b, c, max, min;
    scanf_s("%d %d %d", &a, &b, &c);
    if (a > b)
    {
        max = a;
        min = b;
    }
    else
    {
        max = b;
        min = a;
    }

    if (c < min)
    {
        min = c;
    }
    if (c > max)
    {
        max = c;
    }
    printf("%d %d %d\n", max, a + b + c - max - min, min);

}

还有其他方法,但是不够方便,便不在举例。

5.最后

如讲的不够清晰明了,请私信评论,麻烦点赞关注一波,我将持续讲解更多小知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值