C++

Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов

Ответ:

#include <fstream>
#include <cstdlib>

using namespace std;

void initArray(double* ar,int n)
{
for(int i = 0;i < n;i++){
ar[i] = (rand() % 201)-100;
}
}

void printArray(double* ar,int n)
{
for(int i = 0;i < n;i++){
if(i % 10 == 0)
printf("\n");
printf("%8.1f",ar[i]);

}
}

void replaceElements(double* ar,int n)
{
double avg = 0;
int cntPositive = 0;// количество положительных элементов

for(int i = 0;i < n;i++){
if(ar[i] > 0){
avg += ar[i];
cntPositive++;
}
}

avg /= cntPositive;

for(int i = 0;i < n;i++){
if(ar[i] < 0)
ar[i] = avg;
}

}

int main(){

int n = 100;
double *arr = new double[n];
initArray(arr,n);
printf("Array before replacing \n");
printf("----------------------------------------------\n\n");
printArray(arr,n);
printf("----------------------------------------------\n\n");

replaceElements(arr,n);
printf("Array after replacing \n");
printf("----------------------------------------------\n\n");
printArray(arr,n);
printf("----------------------------------------------\n\n");

return 0;
}
Теги:
массива, диапазон, Программа, CodeBloks, размер, элементов, элементы, средним, арифметическим, значением, заменить
Добавлено: 11 Июня 2015 17:58:34 Добавил: Илья Романенко Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...