Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Красных / Лабораторная работа №10
.docМосковский Государственный Университет Леса
ФЭСТ ВТ-11
Лабораторная работа №10.
Программирование на языках высокого уровня
Тема: “Файлы”
Выполнил студент Красных В.Ю.
Проверил Ларионов Н.В.
Москва 2012.
1. Условия задания:
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) сумму отрицательных элементов массива;
2) произведение элементов массива, расположенных между максимальным и минимальным элементами.
Упорядочить элементы массива по возрастанию.
2. Листинг программы:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
FILE *fp;
int i,s,j,k,ss,min,max,imin,imax,i1,i2;
int n;
char c;
int a[10]={-9,2,-1,9,2,1,0,7,7,2};
clrscr();
fp=fopen("10Laba.dat", "r");
for (i=0;i<10;i++)
fprintf(fp,"%d%c",a[i],',');
fclose(fp);
for (i=0;i<10;i++)
printf("%d ",a[i]);
////////////////////
k=0;
for (i=0;i<10;i++)
if(a[i]<0)k+=a[i];
printf("\n");
printf("summa otriz =%i \n",k);
//////////////////////////
max=min=a[0];
imin=imax=0;
for (i=1;i<10;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("Proizvedenie=%i \n",ss);
///////////////////////////
for (i=0; i<10-1; i++)
for(j=i+1; j<10;j++)
if(a[i]>a[j])
for (k=i;k<=j;k++)
{
s=a[k];
a[k]=a[j];a[j]=s;}
fp=fopen("10Laba.dat", "a");
for (i=0; i<10;i++)
fprintf(fp,"%d%c",a[i],' ');
fclose(fp);
printf("Preobrazovani massiv:\n");
for (i=0;i<10; i++)
printf("%i ",a[i]);
printf("\n");
system("pause");
return 0;
}