2016-12-19 164 views
-4
  int total = 0; 
      int wordCount = 0, index = 0; 
      var vowels = new HashSet<char> { 'a', 'e', 'i', 'o', 'u' }; 
      var consonants = new HashSet<char> { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'x' }; 

      for (int i = 0; i < sentence.Length; i++) 

        if (vowels.Contains(sentence[i])) 
        { 
         total++; 
        } 
        else if (consonants.Contains(sentence[i])) 
        { 
         total++; 
        } 

       } 
       Console.WriteLine("Your total number of vowels is: {0}", total); 
       Console.WriteLine("Number of consonants: {0}", total); 
       Console.ReadLine(); 
` 

這是我的代碼。當我運行我的代碼時,它準確地告訴我有多少元音,但它沒有告訴我輔音的數量。它只複製了元音的數量。計數元音和輔音字符串

+1

您是否意識到這是您第二次詢問並且..它具有完全相同的代碼以顯示相同的「總計」變量..?作爲一個開始的地方,在不同的變量中計數你的輔音和元音。 –

+1

所以'總數'是元音的數量和輔音的數量?這是如何運作的? – John3136

+0

@ John3136,看起來像op沒有閱讀(或試圖理解)他自己的代碼。**當我運行我的代碼時,它準確地告訴我有多少元音,但它沒有告訴我輔音的數量。它只是複製了元音的數量。** –

回答

3
 int totalVowels = 0; 
     int totalConsonants = 0; 
     int wordCount = 0, index = 0; 
     var vowels = new HashSet<char> { 'a', 'e', 'i', 'o', 'u' }; 
     var consonants = new HashSet<char> { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'x' }; 

     for (int i = 0; i < sentence.Length; i++) 
     { 
       if (vowels.Contains(sentence[i])) 
       { 
        totalVowels++; 
       } 
       else if (consonants.Contains(sentence[i])) 
       { 
        totalConsonants++; 
       } 

      } 
      Console.WriteLine("Your total number of vowels is: {0}", totalVowels); 
      Console.WriteLine("Number of consonants: {0}", totalConsonants); 
      Console.ReadLine(); 
1

在這裏你需要考慮幾件事情來實現你的目標。輸入字符串可能包含或不可以包含其他字符(特殊字符或數字),因此您應該檢查輸入字符串中的每個字符是否存在於vowelsconsonants中,還有一件事,您必須爲vowelsconsonants保留單獨的計數器,例如命名爲vowelsCount,consonantsCount。這意味着如果字符出現在vowels的集合中,那麼應該增加vowelsCount,並且如果它存在於consonants中,那麼應該增加consonantsCount

此外,如果需要,您可以保留另一個變量來計算非字母字符數。現在看看下面的代碼:

int vowelsCount = 0, consonantsCount = 0, otherCharacterCount = 0; 
string inputSenctnse = Console.ReadLine().ToLower(); 
var vowels = new HashSet<char> { 'a', 'e', 'i', 'o', 'u' }; 
var consonants = new HashSet<char> { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'x' }; 
foreach (char letter in inputSenctnse) 
{ 
    if (vowels.Contains(letter)) 
     vowelsCount++; 
    else if (consonants.Contains(letter)) 
     consonantsCount++; 
    else 
     otherCharacterCount++; 

} 
Console.WriteLine("Your total number of vowels is: {0}", vowelsCount); 
Console.WriteLine("Number of consonants: {0}", consonantsCount); 
Console.WriteLine("Other characters : {0}", otherCharacterCount); 
Console.ReadLine(); 
0

您需要使用兩個變量來保持兩個數字爲Vinh Vu。

我只是張貼在這裏另一種解決方案,但仍需要變量,以保持兩者:

int total = 0; 
int wordCount = 0, index = 0; 
var vowels = new HashSet<char> { 'a', 'e', 'i', 'o', 'u' }; 
var consonants = new HashSet<char> { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'x' }; 
var sentence = "my sentence"; 
var vowelCount = sentence.ToCharArray().Where(x => vowels.Contains(x)).Count(); 
var consonantCount = sentence.ToCharArray().Where(x => consonants.Contains(x)).Count(); 
0

啓動另一個變量名。在這裏我添加了變量total2。

int total = 0; 
int total2 = 0; 
     int wordCount = 0, index = 0; 
     var vowels = new HashSet<char> { 'a', 'e', 'i', 'o', 'u' }; 
     var consonants = new HashSet<char> { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'x' }; 

     for (int i = 0; i < sentence.Length; i++) 

       if (vowels.Contains(sentence[i])) 
       { 
        total++; 
       } 
       else if (consonants.Contains(sentence[i])) 
       { 
        total2++; 
       } 

      } 
      Console.WriteLine("Your total number of vowels is: {0}", total); 
      Console.WriteLine("Number of consonants: {0}", total2); 
      Console.ReadLine(); 
相關問題