Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Шемяков / Laboratornaya №10
.docМосковский Государственный Университет Леса
ФЭСТ ВТ-11
Лабораторная работа №10.
Программирование на языках высокого уровня
Выполнил студент Шемяков И.И.
Проверил Ларионов Н.В.
Москва 2012 г.
Листинг программы:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <time.h>
#define N 10
void generate_elements(int a[]);
void print_elements(int a[]);
int find_min(int a[]);
int find_summ(int a[]);
void sort(int a[]);
int a[N];
int main()
{
FILE* file;
int result,i;
char str[10];
file = fopen("file.dat","w");
if (file == NULL)
{
fprintf(stderr,"Cannot open file for write\n");
getch();
return -1;
}
generate_elements(a);
print_elements(a);
result = find_min(a);
printf("Minimalny element massiva raven %d\n",a[result]);
result = find_summ(a);
printf("Summa elementov massiva posle pervogo nulya ravna %d\n",result);
sort(a);
for (i = 0;i < N;i++)
fprintf(file,"%d ",a[i]);
fclose(file);
printf("===========SORTED=================\n");
file = fopen("file.dat","r");
if (file == NULL)
{
fprintf(stderr,"Cannot open file for read\n");
getch();
return - 1;
}
for(i = 0;i < N;i++)
{
fscanf(file,"%d ",&result);
printf("%d ",result);
}
// print_elements(a);
fclose(file);
getch();
return 0;
}
void generate_elements(int a[])
{
int i;
time_t t;
srand(time(&t));
for(i = 0;i < N;i++)
a[i] = rand() % 100;
}
void print_elements(int a[])
{
int i;
for (i = 0;i < N;i++)
printf("%d ",a[i]);
printf("\n");
}
int find_min(int a[])
{
int i;
int min,index;
min =fabs( a[0]);
for(i = 1;i < N;i++)
if (a[i] < min)
{
min = fabs(a[i]);
index = i;
}
return index;
}
int find_summ(int a[])
{
int i,first_zeroi = N;
int summ = 0;
for(i = 0;i < N;i++)
if (a[i] == 0)
{
first_zeroi = i;
break;
}
// printf("first_zeroi = %d\n",first_zeroi);
for(i = first_zeroi;i < N;i++)
{
summ += fabs(a[i]);
// printf("!");
}
return summ;
}
void sort(int a[])
{
int a2[N];
int i,j = 0;
for(i = 0;i < N;i+=2)
{
a2[j] = a[i];
j++;
}
j=5;
for(i = 1;i < N;i+=2)
{
a2[j] = a[i];
j++;
}
for(i = 0;i < N;i++)
for(j=0;j<N;j++)
a[i] = a2[j];
}