C/C++

Помогите, пожалуйста, написать программу C++!

В массиве целых чисел D(30) найти среднее арифметическое положительных элементов, расположенных в первой половине массива, и среднее арифметическое отрицательных элементов, расположенных во второй половине массива.
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
const int size = 30;
int D[size];
int sum1 = 0, sum2 = 0, q1 = 0, q2 = 0;
float sr1, sr2;
int pol = size / 2;
srand(time(nullptr));
rand();
for(int x = 0; x < size; x++)
{
D[x] = rand() % 11 - 5;
cout << D[x] << ' ';
if(x < pol)
{
if(D[x] > 0)
{
sum1 += D[x];
q1++;
}
}
else
{
if(D[x] < 0)
{
sum2 += D[x];
q2++;
}
}
}
cout << endl << endl;
if(q1)
{
sr1 = static_cast<float> (sum1) / static_cast<float> (q1);
cout << "Среднее арифметическое положительных элементов в первой половине массива равно " << sr1 << '.' << endl;
}
else
{
cout << "В первой половине массива нет положительных элементов." << endl;
}
if(q2)
{
sr2 = static_cast<float> (sum2) / static_cast<float> (q2);
cout << "Среднее арифметическое отрицательных элементов во второй половине массива равно " << sr2 << '.' << endl;
}
else
{
cout << "Во второй половине массива нет отрицательных элементов." << endl;
}
cout << endl << endl;
return 0;
}
Тимур Ратушный
Тимур Ратушный
94 206
Лучший ответ
#include <iostream>
#include <iomanip>
#include
using namespace std;
int main()
{
int D[30], pos = 0, neg = 0, i, j, u = 0, v = 0;
srand(time(nullptr));
for (i = 0; i < 30; i++)
{
j++;
D[i] = rand() % 199 - 99;
cout << setw(4) << D[i];
if (j == 10)
{
j = 0;
cout << endl;
}
}
for (i = 0; i < 15; i++)
{
if (D[i] > 0)
{
u += D[i];
pos++;
}
j = i + 15;
if (D[j] < 0)
{
v += D[j];
neg++;
}
}
cout << 1. * u / pos << '\n' << 1. * v / neg << endl;
}
Игорь Карасёв
Игорь Карасёв
66 572