Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Красных / Лабораторная работа №11
.docМосковский Государственный Университет Леса
ФЭСТ ВТ-11
Лабораторная работа №11.
Программирование на языках высокого уровня
Тема: “Динамическая память”
Выполнил студент Красных В.Ю.
Проверил Ларионов Н.В.
Москва 2012.
1. Условия задания:
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) сумму отрицательных элементов массива;
2) произведение элементов массива, расположенных между максимальным и минимальным элементами.
Упорядочить элементы массива по возрастанию.
2. Листинг программы:
#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 ("Vvedite n\n");
scanf ("%d", &N);
A = new int [N];
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;}
}