Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Красных / Лабораторная работа №4
.docМосковский Государственный Университет Леса
ФЭСТ ВТ-11
Лабораторная работа №4.
Программирование на языках высокого уровня
Тема: “Массив”
Выполнил студент Красных В.Ю.
Проверил Ларионов Н.В.
Москва 2011.
1. Условия задания:
1)Найти сумму отрицательных
2)Найти произведение между max и min элементами
2. a)Входные данные : a[n]
б)Выходные данные: sum, n1
в)Рабочие данные: i,j, n2
3. Листинг программы:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define n 10
main() {
int a[n];
int sum,i,k,s,j;
int ss,min,max,imin,imax,i1,i2;
for (i=0;i<n;i++)
{
a[i]=rand()%20-10;
printf("%i \n",a[i]);
}
/////////////////////////////////////
sum=0;
for (i=0;i<n;i++)
if (a[i]<0) sum+=a[i];
///////////////////////////////////////
max=min=a[0];
imin=imax=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;
}
}
if (imax>imin) {
i1=imin;
i2=imax;
}
else{
i1=imax;
i2=imin;
}
ss=1;
for (i=i1+1;i<i2;i++)
ss*=a[i];
//////////////////////////////////////////////////
printf("Suuma otrizatelnih elementov=%i \n",sum);
printf("Proizvedenie=%i \n",ss);
///////////////////////////////////////////////////
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;}
printf("Preobrazovani massiv:\n");
for (i=0;i<n; i++)
printf("%i\n",a[i]);
printf("\n");
system("PAUSE");
return 0;
}
5. Тестовые задачи:
Дано: a[10]={4,-5,-6,3,-8,5,6,4,1,5}
Ответ: Минимальный по модулю элемент: -8
Сумма между первыми положительными элементами: -11