看一下一个C代码

来源:百度知道 编辑:UC知道 时间:2024/05/19 05:25:22
#include <stdio.h>

int main(void)
{
char a,b,c,a1,b1,c1;
while((a=getchar(),b=getchar(),c=getchar())!=EOF)
{if((a>b)&&(a>c)&&(b>c))
{a1=c;b1=b;c1=a;}
else if((a>b)&&(a>c)&&(c>b))
{a1=b;b1=c;c1=a;}
else if((b>a)&&(b>c)&&(a>c))
{a1=c;b1=a;c1=b;}
else if((b>a)&&(b>c)&&(c>a))
{a1=a;b1=c;c1=b;}
else if((c>a)&&(c>b)&&(a>b))
{a1=b;b1=a;c1=c;}
else if((c>a)&&(c>b)&&(b>a))
{a1=a;b1=b;c1=c;}
else ;
printf("%c %c %c\n",a1,b1,c1);
}
return 0;
}

输入3个字符。然后按照ASC码从小到大输出。这个错在哪
。。。。。。汗。。不是说输入EOF结束。。不是这个意思。。。

getchar()从流中读取字符。你的回车键被滞留在流中。改用getch()吧。
或者刷新stdin标准输入流。
fflush stdio.h 刷新

EOF 'EOF'
就可以了

#include <stdio.h>

int main(void)
{
char a,b,c,a1,b1,c1;
while((a=getchar(),b=getchar(),c=getchar())!=EOF)
{
a1=(a1=a>b?a:b)>c?a1:c;
c1=(c1=a<b?a:b)<c?c1:c;
b1=a+b+c-a1-c1;

printf("%c %c %c\n",a1,b1,c1);
}
return 0;
}