Во втором цикле for
вы проверяете, больше ли текущий элемент в массиве, чем текущий самый большой;если это правда, вы делаете новый максимум текущим элементом и устанавливаете count
в 0 - вы должны фактически установить его в 1. Если он не больше, вы увеличиваете счетчик - это еще одна проблема.Если текущее число меньше максимального и не равно ему, вам не следует вводить переменную count
, но именно это делает ваш код.
Вот простое исправление, которое должно работать:
int main()
{
int n, i, v[50], max, count = 0;
cout << "Number of elements = "; cin >> n;
for (i = 0; i < n; i++) {
cout << "v[" << i << "]=";
cin >> v[i];
}
max = v[0];
for (i = 0; i < n; i++)
if (max < v[i]) {
max = v[i];
count = 1;
}
else if(max == v[i])
++count;
cout << endl;
cout << "Maximum value, " << max << ", occurs " << count << " times.";
cout << endl;
system("pause");
return 0;
}