同样的代码,PTA提交结果有时对有时不对,这是什么原因?

题目

img

代码

```
#include<stdio.h>
#include<string.h>
#define MAXN 80
int main()
{
int i,j;
char item[MAXN];
char c[MAXN];
char ch[5][MAXN];
for(i=0;i<5;i++){
scanf("%s",c);
j=0;
while(c[j]!=' '&&c[j]!='\n'){
ch[i][j]=c[j];
j++;
}
}for(i=1;i<5;i++){
for(j=0;j<i;j++){
if(strcmp(ch[i],ch[j])<0){
strcpy(item,ch[i]);
strcpy(ch[i],ch[j]);
strcpy(ch[j],item);
}
}
}printf("After sorted:\n");
for(i=0;i<5;i++){
printf("%s\n",ch[i]);
}return 0;
}

```c

测试点

img

供参考:

#include<stdio.h>
#include<string.h>
#define MAXN 80
int main()
{
    int i,j;
    char item[MAXN];
    char c[MAXN];
    char ch[5][MAXN];
    for(i=0;i<5;i++){
        scanf("%s",ch[i]);
        //scanf("%s",c);
        //j=0;
        //while(c[j]!=' '&&c[j]!='\n'){
        //      ch[i][j]=c[j];
        //      j++;
        //}
    }
    for(i=0;i<5-1;i++){    //for(i=1;i<5;i++){
        for(j=0;j<5-i-1;j++){ //for(j=0;j<i;j++){
           if(strcmp(ch[j],ch[j+1])>0){  //strcmp(ch[j],ch[j+1])<0
              strcpy(item,ch[j]);
              strcpy(ch[j],ch[j+1]);
              strcpy(ch[j+1],item);
           }
        }
    }
    printf("After sorted:\n");
    for(i=0;i<5;i++){
        printf("%c%s",i==0?'\r':'\n',ch[i]);//修改
    }
    return 0;
}

c字符串怎么会循环%s输入呢
要么循环%c输入,要么不用循环,%s输入字符串就行了