C语言编程:输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

如题所述

//这道题关键是把输入3个字符后的回车过滤掉,不然回车就会成为下一组的第一个字符。有两种方法: //第一种: #include <stdio.h> int main() { char a,b,c,tmp; while((a=getchar())!=EOF) { b=getchar(); c=getchar(); getchar(); //在录入c后用getchar()滤掉回车 if(a>b) { tmp=a; a=b; b=tmp; } if(a>c) { tmp=a; a=c; c=tmp; } if(b>c) { tmp=b; b=c; c=tmp; } printf("%c %c %c\n",a,b,c); } return 0; } //第二种: #include <stdio.h> int main() { char a,b,c,tmp; while(scanf("%c%c%c%*c",&a,&b,&c)!=EOF) //用"%*c"(空字符,不存储字符的字符)滤掉回车 { if(a>b) tmp=a,a=b,b=tmp; //逗号表达式,简洁 if(a>c) tmp=a,a=c,c=tmp; if(b>c) tmp=b,b=c,c=tmp; printf("%c %c %c\n",a,b,c); } return 0; }
温馨提示:答案为网友推荐,仅供参考
相似回答