关于PTA中统计单词的数量并输出单词的最后一个字符的问题
程序员文章站
2024-03-12 13:31:08
...
关于PTA中统计单词的数量并输出单词的最后一个字符的问题
以下是题目描述
这一题让我很困惑
它没有说明结束的条件
所以我就认为结束条件是EOF
但这第一版本的代码怎么改都会有一个错误
#include <stdio.h>
int main(int argc, char* argv[])
{
char ch[100000];
int i=0,j=0,k;//gets(ch);
ch[0]=getchar();
if(ch[i]!='\0')
j=1;
if(ch[i]=='\0')
return 0;
//[0]=getchar();
for(i=1;;i++)
{
ch[i]=getchar();
if(ch[i]=='\n')
{ch[i]='\0';
k=i;
break;}
}
if(ch[0]!=' ')
printf("%c",ch[0]);
for(i=0;i<k;i++)
{
if(ch[i]==EOF)
break;
if(ch[i]==' '&&ch[i+1]!=' '&&(i+1)>0)
{
printf("%c",ch[i+1]);
j++;}
}
printf("%c\n",ch[i+1]);
}
然后我全部推倒重来再写了一个
第二个版本我干脆不考虑出现多个空格的情况
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char a, b;
int num = 0;
a = getchar();
while (a != '\n') {
b=a;
a = getchar();
if((b!=' '&&a==' ')|| (b!=' ' &&a=='\n')) {
printf("%c", b);
num++ ;
}
}
printf("\n");
printf("%d",num);
return 0;
}
这个便是正确的
直到现在我也没有明白其中的缘由
如果有谁看出来我的错误
望不吝赐教