Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: 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]

Сообщение:

Прикрепить: