@Mnsweet

Что надо изменить в коде чтобы найти количество максимальных элементов массива?

Условие:
Количество максимальных элементов массива, а также
сумма квадратов элементов массива, расположенных после
последнего максимального элемента
Код:
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
	int a[20], n, i, kol = 0, s = 0;
	cout << "\t Input N (<=20) ";
	cin >> n;
	cout << "\n\t Massiv A" << endl;
	for (i = 0; i < n; i++) {
		cout << "\t a[ " << i + 1 << " ] = ";
		cin >> a[i];
	}
	for (i = 0; i < n; i++)
		if (a[i] % 2 == 0) {
			kol++;
			s += pow(a[i],2);
		}
	cout << "\n Kol = vo = " << kol << "\t Summa = " << s << endl;
	cout << "\n Press any key ... " << endl;
	cin.get();
}
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
@WAR_VIK
Можно вот так:
#include <iostream>

int main() {
int arr[]{2,1,2,2,0,7,1,3,7,5,7,0,1,2};
int len = std::size(arr);
int max = arr[0], count{0}, ind{0}, sum{0};
for(int i{0}; i < len; ++i) {
  if(max < arr[i]) max = arr[i];
  if(i == len-1) {
    for(int j{0}; j < len; ++j) {
      if(arr[j] == max) { ++count; ind = j; }
    }
    while(++ind < len) { sum += (arr[ind] * arr[ind]); }
  }
}
std::cout << '\n' << max << ' ' << count << ' ' << sum;
return 0;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Разбейте задачу на подзадачи.
1. Найти максимальный элемент.
2. Найти количество элементов, равных значению из пункта 1.
3. Найти позицию последнего элемента равного значению из пункта 1.
4. Найти сумму квадратов элементов на позициях после найденной в пункте 3.

Каждый пункт - это один цикл for. Все еще не понятно?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы