В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
olgadulebenez
olgadulebenez
16.11.2022 23:10 •  Информатика

Опишите на языке или одном из языков программирования алгоритм поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна (если таких пар несколько, то можно выбрать любую из них). тремя когда запоминается первый элемент, i бежит по второму элементу, не запоминая сумму элементов, а только номер.

Показать ответ
Ответ:
LamanAchverdiyeva
LamanAchverdiyeva
05.07.2020 12:08
Для этого нужно в цикле пробежаться по элементам mass[i] и элементам mass[30 - i], тоесть чтобы не запоминать суму элементов достаточно её сравнить с сумой каких либо других пар (в нашом случае начало масива мы сравниваем с концом).
Далее создадим переменную, по каторой мы будем определять индекс элемента сума которого из соседним элементом являлась самой большой. Просто для проверки запускается 2 цикла в которых будет индекс инкрементироваться, Не важно в конце или в начале этот элемент. В цикле где есть этот элемент делаем проверку, найшли ли мы нужный элемент, если да, то записуем значение индекса в переменную, далее записуем проверку, на равенство индекса и переменной, что не даст нам изменить значение нужного индекса до тех пор, пока мы не найдем нужный, а индекс декрементируем, он все равно будет не изменен, по скольку в начале цыкла мы его увеличиваем на 1. Примерно все! 
C++
.
.
.
int main { 
int mass[30];
int i,counter,
j;
for(i = 0,i<30;i++)
{cout<<"Your mass: "<<mass[i] = rand%100<<endl; // делаем заполнение масива случайными числами от 0 до 100 
 }
//делаем собственно проверку

for(i=0;i<30;i++)
{
         for(j=0;j<30;j++)
        {
        if (mass[i]+mass[i+1]<mass[30-j]+mass[30-j-1]){
          counter=j;
             j--;
          }
             else {counter = i;
               i--;
         }
}
cout<<"Your max element : "<<mass[counter];
}
getch();
return 0;
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота