Заменить все элементы массива с отрицательными значениями средним арифметическим положительных - C (СИ)
Формулировка задачи:
Объявить массив целых чисел и заполнить его случайными значениями. Размер массива и диапазон значений его элементов заданы в Вашем варианте индивидуального задания. В индивидуальных заданиях (см. приложение) указано также, какую обработку массива следует произвести.
Для всех вариантов задания следует иметь в виду следующее:
• 0 считается положительным числом, если в задании не оговорен какой-то другой его статус;
• когда речь идет о какой-то последовательности чисел, имеется в виду последовательность с длиной, большей 1;
• в тех случаях, когда задание требует выполнения каких-то вычислений, разрешается выполнять их с той точностью, которую обеспечивают операции целочисленной арифметики.
Разм. массива | Диапазон значений |Что нужно сделать
100 | -100 - 100 | Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов
Решение задачи: «Заменить все элементы массива с отрицательными значениями средним арифметическим положительных»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define N 100
int main() {
int i;
srand(time(NULL));
int mass[N];
int sum = 0;
int j = 0;
int k = 0;
for(i = 0; i < N; i++) {
k = rand() % 2;
if(k == 0)
mass[i] = rand() % 100;
else mass[i] = -(rand() % 100);
if(mass[i] > 0) {sum+=mass[i];j++;}
}
sum/=j;
for(i = 0; i < N; i++) {
if(mass[i] < 0) mass[i] = sum;
}
}
Объяснение кода листинга программы
В этом коде:
- Создается массив
massтипаintс размеромN(100). - Инициализируется переменная
sumтипаintсо значением 0. - Инициализируются переменные
jиkтипаintсо значением 0. - В цикле
forгенерируются случайные числа от 0 до 99 и записываются в массивmassс помощью операции модуля%. - Если сгенерированное число в диапазоне от 0 до 49, то записывается положительное число, иначе — отрицательное.
- Если сгенерированное число положительное, то к переменной
sumприбавляется его значение, а к переменнойjприбавляется единица. - После завершения цикла, переменная
sumделится на переменнуюjдля получения среднего значения положительных чисел. - В цикле
forпроисходит замена всех отрицательных чисел в массивеmassна полученное среднее значение. - Код завершается.