統計一篇文章裡不同單詞的總數。
有多組數據,每組一行,每組就是一篇小文章。每篇小文章都是由小寫字母和空格組成,沒有標點符號,遇到#時表示輸入結束。
每組只輸出一個整數,其單獨成行,該整數代表一篇文章裡不同單詞的總數。
第一次寫的時候沒看清題 (不同單詞) 導致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; }