2016-04-07 7 views
-1

私は、ユーザーが絶えず別の単語を与え、プログラムがすべての異なる単語を計算するプログラムを作ろうとしています。 たとえば、ユーザーは次のように入力します。「Hello」、ユーザーは「Bye」、ユーザーは「Good」、ユーザーは「Bad」を返します。 これは4つの異なる言葉です。 ユーザーが単語を入力し終わったときに、その単語を計算します。 これは私が書いたコードですが、私はそれを終わらせません。私はプログラマビングでは新しく、この質問はばかげているかもしれませんが、それは私のためには非常に重要です。異なる単語の数を計算するプログラム

`

#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
#include <string.h> 


int main(int argc, char *argv[]) { 
    int num=0,b=0,h=0,g=0; 
    char name[31],text[2000]; 
    while (num==0){ 
     printf("give word: \n"); 
     scanf("%s", name); 
     printf("%s\n", name); 
     if (strcmp(name,"*fff*")==0){ 
      num=1; 
     } 
     else { 
      h=h+1; 
      b=b+strlen(name); 
      strcpy(text,name); 


     } 
    } 

    return 0; 
} 

`

+0

**ユニークな言葉がほしいと思うように聞こえます – LinuxDisciple

+1

あなたは、あなたが望むことを達成するために多くの論理を欠いています。以前のすべてのエントリを保存するには何らかの方法が必要です。新しいエントリが追加されるたびに、前のすべてのエントリと比較できます。つまり、ロジックツリー全体を書き出すことは、このフォーマットではあまりにも広すぎます。 – Claies

+0

私は異なる単語の数が欲しいです。 1回以上出現する単語は1回カウントされます。私は新しく、これらのものをよく知っていません。私は論理が不足していることを知っている。 :/私は古いものと比較されるすべての新しい単語が必要です..しかし、私はそれを行う方法がわかりません – timgr17

答えて

0

代わりに1つの巨大な文字配列内の単語を入れて、あなたは文字配列の配列を作成し、配列全体に重複のたびに確認する必要があります。それは比較的非効率的ですが、うまくいくでしょう。

0

単語を読むたびに、一意の32ビットハッシュに変換します。ソートされた整数の配列を検索する方が、文字列を1000個比較するよりもはるかに高速で簡単です。

関連する問題