2017-04-17 19 views
1

//私はC++を新しくしています。すべての構文規則と、ポインタのような特定のことがどのように動作するのか分かりません。私は、入力で母音を見つけるプログラムを作る方法について知りたい配列、いいえベクトルの提案をしてください。私はこれを難しい方法でやっているかもしれないことは分かっていますが、私はその理由と方法をよりよく知りたいのです。ユーザ入力配列内の母音を見つける

#include<iostream> 
using namespace std; 

int main() 
{ 
    int sum = 0; 
    int n; 
    char vowels[6] = {'a', 'e', 'i', 'o', 'u', 'y'}; 
    char *word = NULL; 
    cout << "Enter word" << endl; 
    cin >> n; 

    for(int i=0; i < n; i++) 
    { 
     for(int j=0; j < 6; j++) 
      if(word[i] == vowels[j]) 
      { 
       sum++; 
      } 
     cout << sum; 
    } 
    delete [] word; 
    word = NULL; 

    return 0; 
} 
+1

単語を入力するのを忘れました( 'cin >> n'はそれをしません)。 – dasblinkenlight

+0

各母音の合計数またはカウントが必要ですか?あなたが望む出力の例を入力することができますか? – at0mzk

答えて

1

あなたはワードに入力された値を設定して、あなたは言葉を経由するループの内側に印刷しているので、あなたはそれぞれの文字の後に合計を印刷する必要があります。あなたのコードの間違いの

0

カップル:

まず、cin >> wordが入力として言葉を取ることはありません、それだけでをとります。これは、wordintであるためです。

また、forループの外側にsumを印刷して、連続して印刷されないようにする必要があります。

1

あなたのプログラムセグメントでは、いくつかのことを気にする必要があります。

  1. 文字列を読み取るための文字配列(例:単語[20])を作成する必要があります。
  2. int(cin >> n;)ではなく、char配列に行を読み込む必要があります。
  3. 'cin'を使用して文字列を読み取ることはできません。
  4. ループ外に和音(母音の数)を印刷する必要があります。

    #include<iostream> 
    #include<string.h> 
    using namespace std; 
    
    int main() 
    { 
        int sum = 0; 
        int n; 
        char vowels[6] = {'a', 'e', 'i', 'o', 'u', 'y'}; 
        char word[20] = NULL; 
        cout << "Enter word" << endl; 
        while (getline(cin, word)) //read line of text including white space until enter key is pressed 
        { 
    
        } 
        n=strlen(word);  //get the length of the input string 
        for(int i=0; i < n; i++) 
        { 
         for(int j=0; j < 6; j++) 
          if(word[i] == vowels[j]) 
          { 
           sum++; 
          }  
        } 
        cout << sum; //Print total number of vowles 
        delete [] word; 
        word = NULL; 
    
        return 0; 
    } 
    

    これは、望ましい出力を生成します。

関連する問題