Пж помогите дам 70 балов
13. Дано натуральне число n і масив дійсних чисел a[1..n]. Всі елементи масиву з парними номерами, що передують першому елементу зі значенням максимального елемента масиву, помножити на це значення.
С++
Ответы
Ответ дал:
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 це ж не парне число.
І до того ж воно повинно множити максимальне число на всі парні елементи після цього максимального числа
Индекс(порядковый номер) числа 19 = 2 . Это чётная позиция. Индекс(порядковый номер) числа 38 = 7 . Это нечётная позиция.
Умножаются только элементы с чётными номерами.
Если хотите перемножить именно чётные элементы - замените цикл с перемножением на это:
for (i=0;i if (a[i]%2==0) {
a[i]=a[i]*m;
}
for (i=0;i if (a[i]%2==0) {
a[i]=a[i]*m;
}
что то код съехал
for(i=0;i
for(i=0; i меньше mi;i++)
if (a[i]%2==0) {
a[i]=a[i]*m;
}
if (a[i]%2==0) {
a[i]=a[i]*m;
}
вместо слова меньше знак надо поставить. На сайте он обрезает строку, поэтому не отображается.
Хорошо спасибо
Вас заинтересует
2 года назад
2 года назад
3 года назад
3 года назад
8 лет назад
8 лет назад
9 лет назад
9 лет назад