c语言用if函数怎么排列任意输出三个数的大小?

2025-03-22 16:50:33
推荐回答(3个)
回答1:

思路:如果利用if进行三个数a,b,b的排序,则先利用if判断a和b的大小,把小数赋值给a大数赋值给b,再利用if判断c和b的大小,把小数赋值给b大数赋值给c,则c就是最大值,最后比较a和b的大小,把小数赋值给a大数赋值给b,则a就是最小数,b是中间值,输出a,b,c就是排序后数。

参考代码:

#include 
int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);     
    if(a>b)//前判断a和b的大小 
        {t=b;b=a;a=t;}
    if(b>c)//再判断b和c的大小 
        {t=b;b=c;c=t;}
    if(a>b)//最后判断a和b的大小 
        {t=a;a=b;b=t;}
    printf("%d<%d<%d",a,b,c);
    return 0;

 /*
输出:
5 1 9
1<5<9
 */

回答2:

#include 

int main()
{
int a,b,c,t;
printf("请输入三个数据");
scanf("%d%d%d",&a,&b,&c);

if(a>b)//前两个先比,大的放到第二个
{t=b;b=a;a=t;}
if(b>c)//后两个再比,大的放到第三个,结合第一次比较,三个中最大的在第三个
{t=b;b=c;c=t;}
if(a>b)//最后再比较前两个,大的放到第二个,最小的在第一个
{t=a;a=b;b=t;}
printf("%d>%d>%d",a,b,c);
}

回答3:

#include

int main()
{
int a,b,c;
printf("请输入三个数据\n");
scanf("%d%d%d",&a,&b,&c);
if(a >= b)
{
if(a >= c)
{
printf("%d\t",a);
if(b >= c)
{
printf("%d\t",b);
printf("%d\n",c);
}
else
{
printf("%d\t",c);
printf("%d\n",b);
}
}
else
{
printf("%d\t",c);
if(a >= b)
{
printf("%d\t",a);
printf("%d\n",b);
}
else
{
printf("%d\t",b);
printf("%d\n",a);
}
}
}
else if(a >= c)
{
printf("%d\t",b);
printf("%d\t",a);
printf("%d\n",c);
}
else
{
printf("%d\t",b);
printf("%d\t",c);
printf("%d\n",a);
}
return 0;
}
这里是按从大到小排列,如果从小到大就把“>”改成“<”即可(如果用到for循环就更简单了,这里的代码只是纯if语句)