而不是像这样做
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;
什么是更有效的方法,所以我只使用一个变量,但我可以输出以特定数字结尾的数字数量?
您可以使用数组或std::map
,其中切换的字符用作索引/键,并且存储的值是计数器
一种更好的方法是使用数组存储您的计数,使用余数作为索引。在这里,我假设输入变量为n
。
int count[10] = { 0 };
count[n % 10]++;
for (int i = 0; i < 10; i++) {
cout << "Numbers that end with " << i << count[i] << endl;
}
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;
}
您可以创建一个int数组,而不是创建许多变量。
int arr[5];
在每种情况下,为每种情况分配的索引(您必须决定哪种情况属于哪个索引)。最后打印您的数组。