1 #include <stdio.h> //错 2 main() 3 { 4 char s[100]; 5 char str[100]; 6 int i; 7 int a,b; 8 scanf("%s",&s); 9 scanf("%s",&str); 10 for(i=0;i<strlen(s);i++) 11 { 12 if(s[i]!=" ") 13 a++; 14 } 15 for(i=0;i<strlen(str);i++) 16 { 17 if(str[i]!=" ") 18 a++; 19 } 20 if(a>b) 21 { 22 printf("%s\n",s); 23 printf("%s",str); 24 } 25 26 else 27 { 28 printf("%s\n",str); 29 printf("%s",s); 30 } 31 32 33 } 34 35 #include <stdio.h> //正确 36 #include <string.h> 37 int main() 38 { 39 int x,y; 40 char a[30],b[30]; 41 gets(a); 42 gets(b); 43 x=strlen(a); 44 y=strlen(b); 45 if(x>y) 46 { 47 puts(a); 48 puts(b); // 两个输出都对,但是有一个错的; 49 return 0; //和scanf()的区别在于输入的字符串是否中间有空格:对于前者,只有遇到"\n"时才停止输入,而对于后者,出现"\n"或空格都停止输入 50 } 51 puts(b); 52 puts(a); 53 }
对于这种易错的输入,最好选择符合不出错的方法;