永发信息网

杭电acm 2072 求错在哪里了.输出来时全是1.

答案:2  悬赏:30  手机版
解决时间 2021-12-21 03:08
  • 提问者网友:战魂
  • 2021-12-20 09:01
杭电acm 2072 求错在哪里了.输出来时全是1.
单词数
Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题.
Input
有多组数据,每组一行,每组就是一篇小文章.每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束.
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数.
Sample Input
you are my friend
#
Sample Output
4
#include stdio.h
#include string.h
int main()
{
\x05char str[100];
\x05int i,word=0,l;
\x05while (scanf(%s,str)!=EOF)
\x05{
\x05\x05if (str[0]=='#')
\x05\x05\x05break;
\x05\x05word=0;
\x05\x05l=strlen(str);
\x05\x05if ((str[0]>='a' && str[0]='A' && str[0]
最佳答案
  • 五星知识达人网友:猎心人
  • 2021-12-20 10:27

%s 遇到空格就over 所以你每次输入其实都只有一个单词就结束了,当然每次输出都是1
你可以考虑用 while(gets(str)!=NULL) 来试试
另外这道题.即使你改了错误还是A不了的,因为要求的是不同的单词数,而你求的是所有的单词数,这里面是有区别的
你可以开一个二维数组,把每个单词都存进去,每次获得一个新单词时,往前比较,看看是否有出现过,若没有才word++;
AC的代码,我有,但是先不贴出来,acm 的代码自己实现比较好
如果有需要,你可以追问,我把AC的代码给你作参考
希望对你有帮助,加油acmer!


全部回答
  • 1楼网友:孤独的牧羊人
  • 2021-12-20 12:02
这个问题我还想问问老师呢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯