我有一个任务,我有一个数组,让我们说{2,3,4,5,2,2,3,5,5,5} 并且只使用一个循环我必须找到最小值和最大值。这个我已经有了。我还必须计算(在同一循环中)这个最小值和最大值出现的次数。我有那个问题。我只能使用一个循环! 输出应该像: 最低:2出现:3次 最大值:5出现:4次
代码:
int size = sizeof(tab) / sizeof(int);
int max = tab[0];
int min = tab[0];
int minCounter = 1;
int maxCounter = 1;
for (int i = 0; i < size; i++) {
cout << "Tab[" << i+1 << "]: " << tab[i] << endl;
if (tab[i] > max) {
max = tab[i];
maxCounter++;
}
if (tab[i] < min) {
min = tab[i];
minCounter++;
}
}
答案 0 :(得分:0)
维护max_count
变量,每次遇到新的最大值时将其重置为1.
(解决方案的其余部分留给读者练习......)
答案 1 :(得分:-1)
在您的代码中,您没有打印正确的值,并且代码不足以打印出所需的输出。你应该决定将输出打印出循环,如果你想计算max和min出现的时间,你应该再添加一个if语句来检查max == tab [i]和min = tab [i]的时间。如果你在if(tab [i]&gt; max)和if(tab [i]&lt; min)之后执行此操作,则不需要将minCounter和maxCounter初始化为1,否则需要将它们初始化为1。
希望这有帮助。