@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();
}
  • Вопрос задан
  • 133 просмотра
Решения вопроса 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. Все еще не понятно?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽