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

Вы понимаете, что это второй раз, когда вы спрашиваете, и .. у него был тот же самый код, который печатает одну и ту же переменную 'total' ..? как место для начала, посчитайте свой согласный и гласные в разных переменных. –

+1

Итак, 'total' - количество гласных и количество согласных? Как это работает? – 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

Здесь вам нужно рассмотреть несколько вещей, чтобы достичь своей цели. Строка ввода может содержать или не содержать другие символы (специальные символы или цифры), поэтому вы должны проверять, что каждый символ в строке ввода существует либо в vowels, либо в consonants, и еще одна вещь, вы должны хранить отдельные счетчики для vowels и consonants , названный 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

Вы должны использовать две переменные, чтобы сохранить оба номера в Винь 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(); 
Смежные вопросы