Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
17.04.2015
Размер:
17.63 Кб
Скачать

//Пример выполнения Лр №11.Динамическая память.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int sumotr(int *a,int n);

int summm(int *a,int n);

void sort(int *a,int n);

int main()

{

int i,s, N; //Задаем размер памяти

int *A; // Создаем указатель на динамическую память

printf («Ввети к-во элементов массива > ");

scanf ("%d", &N);

A = new int [N]; // Выделение динамической памяти

for (i = 0; i < N; i ++ )

scanf ("%d", &A[i]);

for (i = 0; i < N; i ++ )

printf ("%d ", A[i]);

printf("\n");

s=sumotr(A,N); //Вычисление суммы отрицательных элементов

printf("Sotr= %i \n",s);

s=summm(A,N); // Вычисление суммы элементов между наибольшим и

// наименьшимзначениями

printf("Smm= %i \n",s);

sort(A,N); //Упорядочение элементов массива по возростанию

for (i = 0; i < N; i ++ )

printf ("%d ", A[i]);

delete A; // Освобождение памяти

system("pause");

return 0;

}

int sumotr(int *a,int n)

{ int i,sot=0;

for(i=0;i<n;i++)

if(a[i]<0)sot+=a[i];

return (sot); }

int summm(int *a,int n)

{int i, sum,max,imax,min,imin;

max=min=a[0];

for(i=1; i<n;i++){

if (a[i]>max){max=a[i];imax=i;}

if (a[i]<min){min=a[i];imin=i;}

}

sum=0;

if(imax<imin)

for(i=imax+1;i<imin;i++)sum+=a[i];

else

for(i=imin+1;i<imax;i++)sum+=a[i];

return (sum);}

void sort(int *a,int n)

{int i,j,k;

for (i=0;i<n-1;i++)

for (j=0;j<n-1;j++)

if(a[j]>a[j+1]){

k=a[j];

a[j]=a[j+1];

a[j+1]=k;}

}

//2 3 -6 5 4 -3 4 6 9 3

//Sotr= -9

//Smm= 16

//-6 -3 2 3 3 4 4 5 6 9

//