Переделать Программу

Ruslan737

New Member
04.04.2012
2
0
#1
Помогите переделать программу:)Массивы должны быть динамическими.И можно её написать на начальном уровне)С++
C++:
#include <cstdlib>
#include <iostream>
#include <time.h>
#include <cmath>

using namespace std;

//Инициализация массива
void arrInit(int* arr, int size){
for(int i = 0; i < size; i++){
*arr = rand()%19-9;
arr++;
}
return;
}

// Проверка является ли число простым
bool simpleCheck(int x){
bool flag = true;
for(int i = 2; i < x-1; i++){
if(x % i == 0){
flag = false;
break;
}
}
return flag;
}

// Подсчёт среднего
double arrAverage(int* arr, int size){
int summ = 0;
double avg = 0;
for(int i = 0; i < size; i++){
if(simpleCheck(*arr))
break;
summ += *arr;
avg = summ/(i+1.0);
arr++;
}
return avg;
}

int main(int argc, char* argv[]){
srand((unsigned)time(0));
int size1 = 4, size2 = 6;
int* arr1 = new int[size1];
int* arr2 = new int[size2];
// Инициализация массивов случайными значениями
arrInit(arr1, size1);
arrInit(arr2, size2);
// Вычисление размера результирующего массива
int posCount = 0;
for(int i = 0; i < size1; i++)
if(arr1[i] > 0)
posCount++;			 
for(int i = 0; i < size2; i++)
if(arr2[i] > 0)
posCount++;
// Заполнение рез. массива положительными значениями из первых двух массивов
int* resArr = new int[posCount];
int* ptr = resArr;
for(int i = 0; i < size1; i++)
if(arr1[i] > 0){
*ptr = arr1[i];
ptr++;
}
for(int i = 0; i < size2; i++)
if(arr2[i] > 0){
*ptr = arr2[i];
ptr++;
}
cout << arrAverage(resArr, posCount) << endl;
system("pause");
return 0;
}
задание:Из положительных значений двух целочисленных массивов различной размерно-
сти сформировать общий массив. Найти среднее арифметическое элементов, рас-
положенных в массиве до первого простого числа. Создать функции для вычисле-
ния среднего значения и определения простого числа.