Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Баранова / Лаба 10
.docМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА
Факультет электроники и системотехники.
Лабораторная работа № 10
по программированию на языке высшего уровня С
Тема: «Файлы»
Выполнил студент: Баранова Н.Г. ВТ-11
Проверил: Ларионов Н.В.
Москва 2011 г.
-
Условия задания:
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1)max элемент массива;
2)сумму элементов массива, расположенных до последнего положительного элемента;
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]. Освободившиеся в конце массива элементы заполнить нулями.
-
Данные:
Входные данные: i, a[10]
Рабочие данные: max, s.
-
Схема программы:
-
Листинг программы:
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
#include<math.h>
int main(){
FILE *fp;
char c;
const int n=10;
int a[n]={2,3,5,-1,-2,9,-3,-8,0,-2};
int temp[n];
int j=0;
int i;
int k,d,b;
int max=0;
int s=0;
//////////////////////
fp=fopen("10Laba.dat", "w");
for (i=0;i<n;i++)
fprintf(fp,"%d%c",a[i],',');
fprintf(fp,"\n");
fclose(fp);
//////////////////////max
for(i=0; i<n; i++)
if (a[i]>max)
max=a[i];
//////////////////////sum
for(int i=0; i<n; i++)
if( a[i]>0)k=i;
for(i=0; i<k; i++)
s=s+a[i];
/////////////////////sort
printf("vvedite a,b\n");
scanf("%d%d",&b,&d);
for(i=0;i<n;i++){
temp[i]=0;
if ((fabs(a[i])<b)||(fabs(a[i])>d)){
temp[j]=a[i];
j++;
}
}
for(int i=0;i<n;i++){
a[i]=temp[i];
}
///////////////////////zap v fail
fp=fopen("10Laba.dat", "a");
fprintf(fp,"sum=%d\n",s);
fprintf(fp,"max=%d\n",max);
for (int i=0; i<n; i++)
fprintf(fp,"%d%c",a[i],' ');
fclose(fp);
////////////////////
system("pause");
return 0;
}
-
Тестовые задания:
Вводить массив
1 2 3 -3 -2 -1 2 9 0 -3
и тогда
макс 9
сумма 2