有一个注意点:
就是在字符输入时,要用getchar诋毁那个回车键
1 几个比较重要的error 2 1.听了学长的没有再用void main,结果结尾忘了return 0,但是竟然也编译运行成功并提交了,ole 3 2.return 0后的分号用的全角符号,所以编译出现三个error 4 3.程序里明明不用if...else...,直接用if就好了,程序累赘了 5 4.没有考虑输入的字符中有相同的的情况,最后应该比较a和b,而不是a和c。如果输入332就是323不对了 6 *5.不知道scanf输入char字符时回车也会被当成字符。。。 7 所以循环开始的地方要getchar读取回车。。。。
然后题目展示:
开始错误代码展示:(注意观察第六行,没有代码,看下面正确的)
1 #include<stdio.h> 2 int main(){ 3 char a,b,c; 4 char temp; 5 while(scanf("%c%c%c",&a,&b,&c)!=EOF){ 6 7 if(a>b){ 8 temp=a; 9 a=b; 10 b=temp; 11 } 12 if(a>c){ 13 temp=a; 14 a=c; 15 c=temp; 16 } 17 if(b>c){ 18 temp=b; 19 b=c; 20 c=temp; 21 } 22 printf("%c %c %c ",a,b,c); 23 } 24 return 0; 25 }
正确代码:
1 #include<stdio.h> 2 int main(){ 3 char a,b,c; 4 char temp; 5 while(scanf("%c%c%c",&a,&b,&c)!=EOF){ 6 getchar(); //注意需要抵掉一个回车键 7 if(a>b){ 8 temp=a; 9 a=b; 10 b=temp; 11 } 12 if(a>c){ 13 temp=a; 14 a=c; 15 c=temp; 16 } 17 if(b>c){ 18 temp=b; 19 b=c; 20 c=temp; 21 } 22 printf("%c %c %c ",a,b,c); 23 } 24 return 0; 25 }