Для некоторых это будет легко,но для меня трудно.У меня идеи есть,но до сих пор не...

0 голосов
67 просмотров

Для некоторых это будет легко,но для меня трудно.У меня идеи есть,но до сих пор не получается реализовать,чтобы все работало.
Я прошу помочь с выполнением задачи.
Напишите пожалуйста код в C++, который делает следующее:
Найти номер элемента массива,модуль разности сумм чисел слева и справа от которого наименьший.Значение элемента с этим номером при суммировании не учитывается.Номера элементов начинаются с 0.
Допустим элементы последовательности такие : 1,2,3,4,5,6,2.
Ответ:номер элемента 4.,т.е. это число 5 последовательности.
Помогите пожалуйста написать код.


Информатика (12 баллов) | 67 просмотров
0

берем первый элемент массива,находим модуль разности между суммой слева и справа от него,берем следующий элемент,также находим модуль разности и так далее,сравнивая модули между собой,нужно найти наименьший и вывести элемент массива,который относится к наименьшему модулю.

0

разность между суммой чего?

0

между суммой справа от выбранного элемента и слева от него

0

аааа, суммой остальных членов массива?

0

между суммой справа от выбранного элемента и суммой слева от него*

0

дада

0

я пример привел. 1,2,3,4,5,6,2(ввод массива заканчивается повторяющимся числом)берем 1,слева сумма 0,т.к. нет элементов,справа=2+3+4+5+6+2=22.Значит 0-22= -22 и по модулю это 22.Берем следующий. 2,слева сумма 1,справа 3+4+5+6+2=20Значит 2-20=-18 и по модулю это 18.Теперь возьмем 5,слева 1+2+3+4=10,справа 6+2=8Значит 10-8=2, это наименьший модуль ,следовательно выводим номер элемента

0

и так перебирается каждый элемент и вычисляется модуль

0

Извини,у меня очень болит голова,честно.Я спать пойду,завтра на пары вставать.Надеюсь, все объяснил,а также надеюсь на твою помощь.

0

Пойду я тоже спать, а то школу просплю XD

Дан 1 ответ
0 голосов

#include
#include
#include


using namespace std;

int main()
{

   int i,n,k,l,y,j,m;

   cout << "сколько чисел?" << endl;<br>   cin >> n;
   y=INT_MAX;
   int a[n];
   for (i=0;i        cin >> a[i];
   for (i=0;i        k=0;
        l=0;
        for (j=0;j            k=k+a[j];
        for (j=i+1;j<=n;j++)<br>            l=l+a[j];
        if (abs(k-l) < y) {
            y=abs(k-l);
            m=i;}
   }
   cout << m;<br>

}


Если я правильно понял - то вот.

(288 баллов)
0

спасибо огромное,проверю,разберусь.