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

Лабораторные / Лр №12. Директивы препроцессора / Пример к Лр№12.Директивы препроцессора

.odt
Скачиваний:
11
Добавлен:
17.04.2015
Размер:
17.76 Кб
Скачать

//Пример решения задания к Лр №12.Директивы препроцессора.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include "lib12.h" // Присоединение своей библиотеки

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;

}

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

//Sotr= -9

//Smm= 16

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

//

lib12.h

//Библиотека программ к Лр № 12. Директивы препроцессора.

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;}

}