2016-12-19 6 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

これは、あなたが尋ねた2回目のことであり、同じ 'total'変数を出力するのとまったく同じコードを持っていました。あなたの子音と母音を別の変数で数えます。 –

+1

だから、 'total'は、母音の数と子音の数は?それはどのように機能するのですか? – John3136

+0

はJohn3136 @、私は私のコードを実行すると、自分のコードが... **、それは正確にあるどのように多くの母音を私に伝えます(または理解しようとした)読んでいないオペアンプのように見えますが、それは私の子音の数を教えてくれありません。 ** –

答えて

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

ここでは、目標を達成するためにいくつかのことを考慮する必要があります。入力文字列がまたは他の文字を(特殊文字や数字)を含有しない場合がありますので、あなたは、入力文字列の各文字をチェックする必要があります存在vowelsまたはconsonantsであり、もう一つのいずれかで、あなたはvowelsconsonantsに対して個別のカウンタを維持する必要があります、例えばvowelsCountconsonantsCountを命名。これは増やす必要があり、それがconsonantsに存在しているならば、consonantsCountを増加させなければならない文字は、その後vowelsvowelsCountのコレクションに存在している場合を意味します。

また、あなたは、必要に応じて非アルファベット文字のカウントを取るために別の変数を維持することができます。次に、次のコードを見てみましょう:

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にするには、2つの変数を使用する必要があります。私はここに別の解決策を投稿まだあなたがそれらの両方を維持する変数必要

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(); 
関連する問題