На c++: в одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, больших c 2)произведение элементов массива, расположенных после максимального по модулю элемента. преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом - все положительные (элементы, равные 0, считать положительными)

aisa2017 aisa2017    1   07.06.2019 11:50    10

Ответы
Сирена11111 Сирена11111  07.07.2020 08:27
#include <iostream>
#include <cstdio>
#include <cmath>

int main()
{
//Объявление переменных, освобождение памяти под динам.массив
int i=0,n=0,c=0,max=0,k=0;
double p=1.0;
cin>>n,c;
double *massop = new double[n];
double *mass = new double[n];

//узнаём числа>c, а заодно и значение максимума по модулю
for ( i = 0; i < n; i++)
{
cin>>massop[i];
if (massop[i]>c) k++;
if (fabs(massop[i])>max||fabs(massop[i])=max) max=fabs(massop[i]);
}

cout<<k<<'" элементов больше с"<<endl;

//Находим первый максимальный эл-т
//больше с  не нужно, возьму под другие нужды
for (i = 0; i<n; i++)
{
if (fabs(massop[i])=max) break;
}
c=i;

//Начиная с этого элемента находим произведение последующих
for (i = c; i<n; i++)
{
p=p*massop[i];
}

cout<<"Произведение чисел после максимального по модулю элемента: "<<p<<endl;

//и снова с на левые цели
c=0;
//заполняем начало массива mass отрицательными элементами из massop
for (i=0;i<n;i++)
{
if (massop[i]<0) mass[c]=massop[i];
c++;
}
//а конец-положительными
for (i=0;i<n;i++)
{
if (massop[i]>0||massop[i]=0) mass[c]=massop[i];
c++;
}
//выведем, что вышло после упорядочивания
for (i=0;i<n;i++)
{
cout<<mass[i]<<'/n';
}
}

/*Вот и всё, коллега-сишник :D*/
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика