acm上的题,搞不懂为什么超时了

img


我用了!=EOF为什么还是超时,大家帮帮我吧,。×;~฿(%&[+)

img

把!=‘\0’去掉,把scanf语句用()包起来即(scanf())!=EOF


#include <stdio.h>
 
void main()
{
char str[100],*p;
printf("请输入内容:\n");
gets(str);
p=str;
for(p=str;*p;p++)
{
if (p==str && *p>='a' && *p <='z') *p=*p-32;
    if (*p==' ')
    {
        if(*(p+1)>='a' && *(p+1) <= 'z') *(p+1)=*(p+1)-32;
    }
}
puts(str);
}

修改如下,供参考:

#include <stdio.h>
int main()
{
    int i;
    char s[101];
    while (gets(s) != NULL) {
        for (i = 0; s[i] != '\0'; i++)
        {
            if (i == 0 && s[i] >= 'a' && s[i] <= 'z')
                s[i] = s[i] - 32;
            else if (s[i] >= 'a' && s[i] <= 'z' && s[i - 1] == ' ')
                s[i] = s[i] - 32;
        }
        puts(s);
    }
    return 0;
}