高手帮我看看这个C程序哪里错了

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:11:38
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
#include<stdio.h>
int main()
{
char a,b,c,d;
while(scanf("%c%c%c",&a,&b,&c))
{
if(a>b)
{d=b,b=a,a=d;}
if(b>c)
{d=b,b=c,c=d;}
if(a>b)
{d=b,b=a,a=d;}
printf("%c %c %c\n",a,b,c);
}
}
请问那要怎么改啊?

#include<stdio.h>
int main()
{
char a,b,c,d;
while(scanf("%c%c%c",&a,&b,&c))
{
if(a>b)
{d=b,b=a,a=d;}
if(b>c)
{d=b,b=c,c=d;}
if(a>b)
{d=b,b=a,a=d;}
printf("%c %c %c\n",a,b,c);
}
return 0;
}
没有返回值,你这里用while函数成了死循环.

主函数main不用定义,scanf语句最好放在循环语句外面, 另外:这里不需要使用while。