Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: Cena (29.12.2011 в 19:43) Я чуть-чуть изменил в проверке на простое число for(i=2; i<n/2; i++), и, вроде, все так же осталось.И я немного не понял с функцией удаления, а где она в программе задействована?
#include <stdio.h> #include <iostream> using namespace std; // Прототипы функций bool prostoe(int n); int max(int *a, int n); void fullfill_array(int *a, int n); // Два варианта среднего арифметического: с исключением // максимального значения и без него int sr_arifm(int *a, int n, int max); int sr_arifm(int *a, int n); // Главная функция int main(void) { // Объявляем переменные int *X, *Z, s; int N, K, i, Nmax, Kmax, k; // Формируем и заполняем первый массив cout << "perviu massiv= "; cin>>N; X=new int[N]; fullfill_array(X, N); // Формируем и заполняем второй массив cout<<"vtoroi massiv = "; cin>>K; Z=new int[K]; fullfill_array(Z,K); // Ищем максимальный элемент первого массива Nmax=max(X,N); // В зависимости от того является ли максимальное // значение простым числом, выводим результат if(prostoe(X[Nmax])) { // Максимальное значение является простым числом cout << "Среднее арифметическое первого массива = " << sr_arifm(X, N, X[Nmax]) << endl; } else { // Максимальное значение не является простым числом cout << "Среднее арифметическое первого массива = " << sr_arifm(X, N) << endl; } // Ищем максимальный элемент второго массива Kmax=max(Z,K); // В зависимости от того является ли максимальное // значение простым числом, выводим результат if(prostoe(Z[K])) { // Максимальное значение является простым числом cout << "Среднее арифметическое первого массива = " << sr_arifm(Z, K, Z[Kmax]) << endl; } else { // Максимальное значение не является простым числом cout << "Среднее арифметическое первого массива = " << sr_arifm(Z, K) << endl; } delete []X; delete []Z; system("PAUSE"); return 0; } // Является ли число простым bool prostoe(int n) { int i=0; bool pr; if(n<=2) return 0; for(i=2; i<n/2; i++) { if(n%i==0) return pr; } return 0; } // Заполняем элементы массива void fullfill_array(int *a, int n) { int i; for(i=0; i<n; i++) { cout<<"MASSIV X/"<<i+1<<"="; cin>>a[i]; } } // Ищем максимальный элемент массива int max(int *a, int n) { int max=a[0]; int Nmax=0, i=0; for(i = 0; i<n; i++) { if(max<a[i]) { max=a[i]; Nmax=i; } } return Nmax; } // Среднее арифметическое положительных чисел int sr_arifm(int *a, int n, int max) { int k; int s, i; for(i=0, k=0, s=0; i<n; s+=a[i], i++) { if(a[i] > 0 && max==a[i]) k++; } if(k) return s/k; else return 0; } // Среднее арифметическое положительных чисел int sr_arifm(int *a, int n) { int s; int k, i; for(s=0, i=0, k=0; i<n; s+=a[i], i++) { if(a[i]>0) k++;} if(k) return s/k; else return 0; }
Ваше имя:
Пароль:
Цитировать Используйте тэги для выделения текста: Код: [code][/code] Жирный: [b][/b] Наклонный: [i][/i] URL: [url][/url]
Сообщение:
Прикрепить: