Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Музалев / Лабораторная работа №12
.docМосковский Государственный Университет Леса
ФЭСТ ВТ-11
Лабораторная работа №12.
Программирование на языках высокого уровня
Тема: “ Директивы препроцессора ”
Выполнил: студент Музалёв Д.В.
Проверил: Ларионов Н.В.
Москва 2012.
Написать программу с созданием библиотеки программ
и присоединением ее через команды препроцессора.
Вариант 12
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) номер максимального по модулю элемента массива;
2) сумму элементов массива, расположенных после первого положительного
элемента.
3)Преобразовать массив таким образом, чтобы сначала располагались все элемен-ты,целая часть которых лежит в интервале [а,Ь], а потом — все остальные.
Листинг программы:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<lib 12.h>
int main()
{
int i,max,k,N;
int *A;
printf ("Vvesty k-vo elementov massiva ");
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=sumotr(A,N);
printf("Sotr= %i \n",s);
sort(A,N);
for (i = 0; i < N; i ++ )
printf ("%d ", A[i]);
delete A;
system("pause");
return 0;
}
#include<lib 12.h>
int sumotr(int *a,int n)
{int i,sum;
if(a[i]>0)
{a[i]>0;k=i;break;}
for(i=k+1;i<n;i++)
sum+=a[i];
return (sum);}
int summm(int *a,int n)
{int i,max,k;
for(i=0;i<n;i++)
max=abs(a[0]);
for(i=1;i<n;i++)
if(abs(a[i])>max)
{max=abs(a[i]);k=i;}
int sum;
sum=0;
for(i=0;i<k;i++)
sum+=a[i];
return (sum);}
void sort(int *a,int*b,int n)
{int i;
int m,l,k;
printf ("Vvedite m ");
scanf ("%i", &m);
printf("\n");
printf ("Vvedite l ");
scanf ("%i", &l);
k=0;
for (i=0; i<n; i++)
if (a[i]>=m && a[i]<=l)
{b[k]=a[i];k++;}
for(i=0;i<n; i++)
if( a[i]<m || a[i]>l)
{b[k]=a[i];k++;}
for(i=0;i<N;i++)
}