統計一篇文章裡不同單詞的總數。
有多組數據,每組一行,每組就是一篇小文章。每篇小文章都是由小寫字母和空格組成,沒有標點符號,遇到#時表示輸入結束。
每組只輸出一個整數,其單獨成行,該整數代表一篇文章裡不同單詞的總數。
第一次寫的時候沒看清題 (不同單詞) 導致WA了一發··
思路理清楚後也不是什麼難題,用二維數組來記錄一行句子中的各個單詞,每個單詞後要加\0
最後每個單詞都與它前面的各個單詞對比,沒有相同的話就count++啦
#include <iostream>
#include <cstdio>
#include <cstring>
char word[2000][2000];
char s[1000000];
int main(int argc, char** argv)
{
while(gets(s),s[0]!='#')
{
int t=0,l=0;
int len=strlen(s);
int i=0;
while(i<len)
{
if(s[i]==' ')
{
while(s[i]==' ')
i++;
}
else
{
while(s[i]!=' '&&s[i]!='\0')
word[t][l++]=s[i++]; //將單詞存入二維組
word[t][l]='\0'; //別忘記在單詞末尾加上\0
t++;
l=0;
}
}
/*接下來進行篩選*/
int count=0;
int flag=0;
for(int j=0;j<t;j++)
{
flag=0;
for(int k=0;k<j;k++)
{
if(strcmp(word[k],word[j])==0)//如果找出此單詞與前面某個單詞相同,則不計入單詞數
flag=1;
}
if(flag==0)
count++;
}
printf("%d\n",count);
}
return 0;
}