关于c语言三个数排列大小的问题

#include<stdio.h>void main(){int a,b,c,t;printf("请输入三个整数:");scanf("%d,%d,%d",&a,&b,&c);if(a>b) t=a;a=b;b=t;printf("%d,%d尀n",b,a);if(b>c)t=b;b=c;c=t;printf("%d,%d尀n",c,b);if(a>c)t=a;a=c;c=t;printf("%d,%d尀n",a,c);}请问这个程序哪里错了?要求从小到大输出,调试结果有问题!麻烦解答一下,谢谢了!
2026年09月19日 19:04
有5个网友回答
网友(1):

你要输出三个数, 你的程序只输出俩数字的比较:
#include

int main()
{
int a,b,c;
printf("input three number:");
scanf("%d,%d,%d",&a,&b,&c);
if (a>=b) //a>=b
if (b>=c) // a>b>c
printf("%d,%d,%d\n",c,b,a);
else
if (a>=c) // a>c>b
printf("%d,%d,%d\n",b,c,a);
else // c>a>b
printf("%d,%d,%d\n",b,a,c);
else // a if (a>=c) //c printf("%d,%d,%d\n",c,a,b);
else // a if (b>=c) // a printf("%d,%d,%d\n",a,c,b);
else // a printf("%d,%d,%d\n",a,b,c);
return 0;
}

网友(2):

#include

void
main(){
float
a,b,c,d;
printf("请输入任意三个数");
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{d=a;
a=b;
b=d;}
if(a{d=c;
c=a;
a=d;}
if(b>c)
{d=b;
b=c;
c=d;}
printf("三个数中最大的数是%f",d);
}
这样试试,还有,最好不要用float类型进行比较,可能会存在误差。

网友(3):

你这个程序写的有点乱呃
一个是if语句下面没有{}
再一个这个从小到大排的逻辑也不对
比如c>a>b,满足a>b 直接printf("%d,%d\n",b,a);,可其实c最大呢

网友(4):

if(b>c)
t=b;
b=c;
c=t;
少括号啊

网友(5):

#include
void main()
{
int a,b,c,t;
printf("请输入三个整数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b){
t=a;
a=b;
b=t;
}//执行到这里表示满足a小于b,接下来把c插进去就行了
if(cprintf("%d,%d,%d\n",c,a,b);
else if(c>b)
printf("%d,%d,%d\n",a,b,c);
else
printf("%d,%d,%d\n",a,c,b);
}