2017-04-17 47 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. 您需要讀入char數組而不是int(cin >> n;)。
  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; 
    } 
    

    這會產生所需的輸出。