valeramayshev
@valeramayshev
Студент,голодный,вредный,злой.

Как определить максимальную сумму элементов среди массивов?

Приветствую!Помогите пожалуйста!Не понимаю как определить максимальную сумму среди массивов в C++.Так как я не понимаю сам термин "максимальная сумма"...
Само задание звучит так : "Ввести одномерный массив a1, a2, an . Вычислить все суммы трех подряд идущих элементов и среди них определить максимальную сумму. "
На данный момент имеется такой код:
#include <stdio.h>
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main(){
	int arr_a1[3] = {3,4,5};
	int arr_a2[3] = {7,8,9};
	int arr_an[3] = {12,13,14};
	setlocale(LC_ALL, "Rus");
	cout <<"Массив a1 "" " << arr_a1[0] + arr_a1[1] + arr_a1[2]<< "\n" <<"Массив a2 "" " << arr_a2[0] + arr_a2[1] + arr_a2[2] << "\n" << "Массив an "" " << arr_an[0] + arr_an[1] + arr_an[2]<< endl;
}
  • Вопрос задан
  • 779 просмотров
Решения вопроса 1
valeramayshev
@valeramayshev Автор вопроса
Студент,голодный,вредный,злой.
Спасибо Roman за предоставленный код!
Код:
#include <iostream>
 
int sum(int* ptr, int count)
{
    int result = 0;
    for(int i = 0; i < count; ++i)
    {
        result += ptr[i];
    }
    return result;
}
 
int main()
{
  const int N  = 10;
  const int frame = 3;
 
  int a[N] = {0};
  int max = 0;
  int summ = 0;
 
  std::cout << "Enter values:\n";
  for(int i = 0; i < N; ++i)
  {
  	std::cout << "a[" << i << "] = "; 
  	std::cin >> a[i];
  	std::cout << "\n";
  }
 
  for(int i = 0; i < N - (frame - 1); ++i)
  {
      summ = sum(a + i, frame);
      if(summ > max)
      {
          max = summ;
      }
  }
  std::cout << max;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Zoominger
@Zoominger
System Integrator
Полагаю, что вы не так поняли задание. Вот это:
Ввести одномерный массив a1, a2, an

Значит "одномерный массив с именем a и неопределённым размером" (если N не указан).
То есть массив один. Вы сначала вводите его размер (если, опять же, он не указан сразу), затем вводите числа.
В нём и ищите, что надо.
Ответ написан
Stalker_RED
@Stalker_RED
Перебираем массив складывая каждый из элементов с двумя соседними.
Если сумма больше вычисленной на предыдущем шаге - запоминаем ее.
Ответ написан
Ваш ответ на вопрос

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

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