)ASCII比较大小

有一个注意点:

      就是在字符输入时,要用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\n",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\n",a,b,c);
23     }
24     return 0;    
25 }

 

posted @ 2017-09-01 10:06  小油菜1  阅读(1140)  评论(0)    收藏  举报