Вариант 20

В одномерном массиве, состоящем из n вещественных элементов, вычислить:

  1. произведение положительных элементов массива;
  2. сумму элементов массива, расположенных до минимального элемента;
  3. упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах.

Код программы:

//---------------------------------------------------------------------------
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<windows.h>
#include <vcl.h>
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
char *rus(const char *text);//функция для распознавания русских букв
int main(int argc, char* argv[])
{
 int i,n,imin=0,cnt1=0,cnt2=0;   //объявление 
 float sum=0,pro=1,min=0,temp=0; //переменных
 bool sort=1;
 cout<<rus("Введите размерность n=");cin>>n;  //ввод размерности массива
 cout<<rus("Введите элементы массива:")<<endl<<endl;
 float *p=new float[n]; // объявление массива
 for(i=0;i<n;i++)cin>>p[i]; //ввод массива
 float *p1=new float[n]; //объявление массива для хранения элементов стоящих на четных позициях
 float *p2=new float[n]; //объявление массива для хранения элементов стоящих на нечетных позициях
 for(i=0;i<n;i++)
 if(p[i]>0)
  {
   pro*=p[i];//произведение положительных элементов
  }
 cout<<rus("\nПроизведение положительных элементов: ")<<pro<<endl; //вывод
 min=p[0];      //берем 1 элемент за минимальный
 for(i=0;i<n;i++)      //поиск
 if(p[i]<min)          //минимального
  {                    //элемента
   min=p[i];
   imin=i;            //порядковый номер
  }
 cout<<rus("\nМинимальный элемент: ")<<min<<endl;//вывод элемента
 cout<<rus("Позиция минимального элемента: ")<<imin+1<<endl; //вывод номера элемента
 for(i=0;i<imin;i++)sum+=p[i];//суммирование
 cout<<rus("\nСумма элементов расположенных до минимального: ")<<sum<<endl;//вывод суммы
 cout<<rus("\nПреобразованный массив:")<<endl<<endl;
 for(i=0;i<n;i++)     //поиск
  {                   //элементов
   if((i%2)==false)   //стоящих
    {                 //на
     p1[cnt1]=p[i];   //четных
     cnt1++;         //позициях
    }
   if(i%2)           //поиск
    {                //элементов
     p2[cnt2]=p[i];  //стоящих
     cnt2++;          //на
    }                 //нечетных позициях
  }
 while(sort)
  {
   sort=0;
   for(i=0;i<cnt1-1;i++)      //сортировка
    {                         //элементов
     if(p1[i]>p1[i+1])        //стоящих
      {                       // на
       temp=p1[i];            // четных
       p1[i]=p1[i+1];         //позициях
       p1[i+1]=temp;
       sort=1;
      }
    }
   for(i=0;i<cnt2-1;i++)     //сортировка
    {                        // элементов
     if(p2[i]>p2[i+1])       // стоящих
      {                      // на
       temp=p2[i];           // нечетных
       p2[i]=p2[i+1];        // позициях
       p2[i+1]=temp;
       sort=1;
      }
    }
  }
 for(i=0;i<cnt1;i++)cout<<p1[i]<<' ';//вывод отсортированных четных элементов
 cout<<endl;
 for(i=0;i<cnt2;i++)cout<<p2[i]<<' ';//вывод отсортированных нечетных элементов
 getch();
 return 0;
}
//---------------------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
 {
  CharToOem(text,bufrus);
  return bufrus;
 }
//---------------------------------------------------------------------------

Результат работы программы:

Результат работы. Двадцатый вариант. Одномерные массивы и указатели

Вариант 19
error: Content is protected !!
Adblock
detector