Пж помогите дам 70 балов
13. Дано натуральне число n і масив дійсних чисел a[1..n]. Всі елементи масиву з парними номерами, що передують першому елементу зі значенням максимального елемента масиву, помножити на це значення.
С++

Ответы

Ответ дал: mirageKZ
1

Ответ:

Элементы, чтобы не вводить заполняются автоматически

#include <iostream>

#include <ctime>

using namespace std;

int main()

{

   int n, i, m, mi;

   cin >> n;

   int a[n];

   srand((unsigned)time(NULL));

   for (i=0; i<n; i++)

   {

       a[i]=rand()%100;

       cout << a[i] << " ";

   }

   cout << "\n";

   m=a[0];

   mi=0;

   for(i=0;i<n;i++)

   {  if(m<a[i])

       {  m=a[i];

          mi=i;

       }

   }

   for(i=1;i<mi;i+=2){

       a[i]=a[i]*m;

   }

   cout << "max element a[" << mi << "]=" << m << "\n";

   for (i=0; i<n; i++)

   {

       cout << a[i] << " ";

   }

   return 0;

}

Приложения:

Loha64: так а чому воно множить на 19 а 38 пропускає? 19 це ж не парне число.
Loha64: І до того ж воно повинно множити максимальне число на всі парні елементи після цього максимального числа
mirageKZ: Индекс(порядковый номер) числа 19 = 2 . Это чётная позиция. Индекс(порядковый номер) числа 38 = 7 . Это нечётная позиция.
mirageKZ: Умножаются только элементы с чётными номерами.
mirageKZ: Если хотите перемножить именно чётные элементы - замените цикл с перемножением на это:
for (i=0;i if (a[i]%2==0) {
a[i]=a[i]*m;
}
mirageKZ: что то код съехал
mirageKZ: for(i=0;i
mirageKZ: for(i=0; i меньше mi;i++)
if (a[i]%2==0) {
a[i]=a[i]*m;
}
mirageKZ: вместо слова меньше знак надо поставить. На сайте он обрезает строку, поэтому не отображается.
Loha64: Хорошо спасибо
Вас заинтересует