Site icon C/C++ Структурное программирование

Вариант 16

В одномерном массиве, состоящем из 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,count=0;   //объявление
 float sum=0,min=0,temp=0; //
 bool sort=1;              //переменных
 cout<<rus("Введите размерность n=");cin>>n; //ввод размерности массива
 cout<<rus("\nВведите элементы массива:")<<endl<<endl;
 float *p=new float[n];      //объявление массива
 for(i=0;i<n;i++)cin>>p[i]; //ввод массива
 for(i=0;i<n;i++)   //поиск 
 if(p[i]<0)         //отрицательных элементов
  {
   count++;        //счетчик
  }
 cout<<rus("\nКоличество отрицательных элементов: ")<<count<<endl; //вывод кол-ва
 min=p[0];         //берем первый элемент за минимальный
 for(i=0;i<n;i++)
 if(fabs(p[i])<fabs(min))  //поиск
  {                        //минимального по модулю
   min=p[i];              //элемента
   imin=i;
  }
 cout<<rus("\nМинимальный по модулю элемент: ")<<min<<endl;  //вывод
 cout<<rus("Позиция минимального по модулю элемента: ")<<imin+1<<endl; //вывод
 for(i=imin+1;i<n;i++)sum+=fabs(p[i]); //суммирование
 cout<<rus("\nСумма элементов расположенных после минимального: ")<<sum<<endl;//вывод
 for(i=0;i<n;i++)//поиск
 if(p[i]<0)      //отрицательных
  {              //элементов
   p[i]*=p[i];   //и возведение их
  }              //в квадрат
 while(sort)
  {                    //сортировка
   sort=0;
   for(i=0;i<n-1;i++)  //массива
   if(p[i]>p[i+1])    //по
    {
     temp=p[i];       //возрастанию
     p[i]=p[i+1];
     p[i+1]=temp;
     sort=1;
    }
  }
 cout<<rus("\nУпорядоченный массив:")<<endl<<endl;
 for(i=0;i<n;i++)cout<<p[i]<<' ';//вывод отсортированного массива
 getch();
 return 0;
}
//---------------------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
 {
  CharToOem(text,bufrus);
  return bufrus;
 }
//---------------------------------------------------------------------------

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

Вариант 15
Вариант 17
Exit mobile version