具有多个增量的Switch语句-C ++

问题描述 投票:0回答:4

而不是像这样做

int j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, t = 0;

case '1':
  j++;
  break;
case '2':
  k++;
  break;
case '3':
  l++;
  break;
case '4':
  m++;
  break;
case '5':
  n++;
  break;

cout << "Numbers that end with 1" << j << endl;
cout << "Numbers that end with 2" << k << endl;
cout << "Numbers that end with 3" << j << endl;

什么是更有效的方法,所以我只使用一个变量,但我可以输出以特定数字结尾的数字数量?

c++ switch-statement
4个回答
1
投票

您可以使用数组或std::map,其中切换的字符用作索引/键,并且存储的值是计数器


0
投票

一种更好的方法是使用数组存储您的计数,使用余数作为索引。在这里,我假设输入变量为n

int count[10] = { 0 };

count[n % 10]++;

for (int i = 0; i < 10; i++) {
   cout << "Numbers that end with " << i << count[i] << endl;
}

0
投票
map<char, int> freq_table;

freq_table[ch]++;

for (map<string, int>::iterator it = freq_table.begin(); i != freq_table.end(); it++) {
    cout << (*it).first << ": " << (*it).second << eol;
}

0
投票

您可以创建一个int数组,而不是创建许多变量。

int arr[5];

在每种情况下,为每种情况分配的索引(您必须决定哪种情况属于哪个索引)。最后打印您的数组。

© www.soinside.com 2019 - 2024. All rights reserved.