共两个错误,一个是输入的换行符没有吸收,下次scanf的时候会读取换行符。
比如你输入asd(Enter)键,scanf后那个enter键还保留在缓冲中,下次scanf的时候会读取。
第二个是比较的逻辑有点问题,修改的代码如下:
#include
int main()
{
char a,b,c;
while(scanf("%c%c%c",&a,&b,&c)!=EOF)
{
if(a<=b)
{
if(b<=c) printf("%c %c %c\n",a,b,c); // c最大
else if(a<=c && c<=b) printf("%c %c %c\n",a,c,b); // c在a,b之间
else printf("%c %c %c\n",c,a,b); // c最小
}
else // a>b
{
if(b>=c) printf("%c %c %c\n",c,b,a); // c最小
else if(a>=c&&c>=b) printf("%c %c %c\n",b,c,a); // c在b,a之间
else printf("%c %c %c\n",b,a,c); // c最大
}
getchar(); // 一次scanf后吸收掉换行符
}
return 0;
}