Практические / Отчеты студентов 2011-2012 / ВТ-12 ЛР / Понтеев / 12 лаба / Лабораторная работа №12
.docxМосковский Государственный Университет Леса
Лабораторная работа №12.
Программирование на языках высокого уровня
Выполнил: Пантеев В.В.
Проверил: Ларионов Н.В.
Москва 2012.
Задание:
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) сумму отрицательных элементов массива;
2) произведение элементов массива, расположенных между максимальным и минимальным элементами.
Упорядочить элементы массива по возрастанию.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include <pon.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("Sum otriz= %i \n",s);
s=summm(A,N);
printf("Summa= %i \n",s);
sort(A,N);
for (i = 0; i < N; i ++ )
printf ("%d ", A[i]);
delete A;
system("pause");
return 0;
}
pon.h
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 s,j,i;
for (i=0; i<n-1; i++)
for(j=i+1; j<n;j++)
if(a[i]>a[j])
for ( int k=i;k<=j;k++)
{
s=a[k];
a[k]=a[j];a[j]=s;}}