ACM基础题 卡了两个小时了 这题没输出 哪里错了呀 哭

img


#include <stdio.h>
#include <string.h>
int main() {
char str[350];
int i;
gets(str);
for(i=0;i<=300;++i){
if ( str[i] == 'Q'|| str[i]=='q') {
while (str[i] !='\0') {
printf("%c",str[i]);
i++;
}
printf("\n");
}else{
i++;
}
}
return 0;
}

修改如下,供参考对照:

#include <stdio.h>
#include <string.h>
int main()
{
    char str[350];
    int i;
    gets(str);
    for(i=0;str[i]!='\0';)  // for(i=0;i<=300;++i)
    {
        if( str[i] == 'Q'|| str[i]=='q')
        {
            while (str[i] != ' ' && str[i] !='\0') // while (str[i] !='\0')
            {
                   printf("%c",str[i]);
                   i++;
            }
            printf("\n");
        }else{
            i++;
        }
    }

    return 0;
}