Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Шишкин / 10
.docxМосковский государственный университет леса
ФЕСТ
Вт – 11
Лабораторная работа №10
По теме:
«Файлы»
Преподаватель: Ларионов Н. В.
Студент: Шишкин Д. В.
Москва 2012
в одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) произведение отрицательных элементов массива;
2) сумму положительных элементов массива, расположенных до максимального
элемента.
Изменить порядок следования элементов в массиве на обратный.
Листинг программы:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define N 30
float a[N];
void generate_elements();
void print_elements();
int naity_proizvedenie();
int naity_summu();
int find_max();
void sort();
int main()
{
int i = 0;
FILE* file;
float proizv,summ,chislo;
generate_elements();
file = fopen("file.dat","w");
if (file == 0)
{
fprintf(stderr,"Cannot open file for write");
getch();
exit(-1);
}
print_elements();
proizv = naity_proizvedenie();
summ = naity_summu();
printf("Proizvedenie otricatelnyh elementov masiva ravno %f\n",proizv);
printf("Summa polojitelnyh elementov massiva raspolojennyh do max ravno: %f\n",summ);
sort();
for(i = 0;i < N;i++)
fprintf(file,"%.2f ",a[i]);
printf("===============SORTED=================\n");
// print_elements();
fclose(file);
file = fopen("file.dat","r");
if (file == 0)
{
fprintf(stderr,"Cannot open file for read");
getch();
exit(-1);
}
for(i = 0;i < N;i++)
{
fscanf(file,"%f ",&chislo);
printf("%f\t",chislo);
}
getch();
fclose(file);
return 0;
}
void generate_elements()
{
time_t t;
int i;
srand(time(&t));
for(i = 0;i < N;i++)
{
a[i] = rand() % 100;
if (rand() % 2 != 0)
a[i] *= -1;
}
}
void print_elements()
{
int i;
for(i = 0;i < N;i++)
printf("%f\t",a[i]);
}