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 }

对于这种易错的输入,最好选择符合不出错的方法;