Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
17.04.2015
Размер:
12.74 Кб
Скачать

Московский государственный университет леса

Факультет электроники и системотехники

Лабораторная работа №10

Тема: Файлы

Выполнил: Смирнов С.А.

Группа: ВТ-12

Москва 2012

Задание

в одномерном массиве, состоящем из п вещественных элементов, вычислить:

1) максимальный по модулю элемент массива;

2) сумму элементов массива, расположенных между первым и вторым положительными элементами.

Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных.

#include <stdio.h>

#include <math.h>

#include <windows.h>

#include <stdlib.h>

#define N 10

int main()

{

int a[N];

double max, sum, tmp;

int i, maxi, j;

FILE *fp;

fp=fopen("test dat","w");

for ( i = 0; i < N; ++i )

scanf("%d",&a[i]);

for ( i = 0; i < N; ++i )

fprintf(fp,"A[%d] = %5.1d\n", i, a[i]);

maxi = 0;

max = fabs(a[maxi]);

for ( i = 1; i < N; ++i ){

if ( max < fabs(a[i]) ){

maxi = i;

max = fabs(a[maxi]);

}

}

fprintf(fp,"\nMaksimum:\nA[%d] = %.1d\t%.1d\n", maxi, a[maxi], max);

i = 0;

sum = 0;

while ( a[i] < 0 && i < N )

++i;

if ( i == N ){

printf("\nNet pologitelnyh elementov!\n");

goto THREE;

}

++i;

while ( a[i] < 0 && i < N )

sum += a[i++];

if ( i == N ){

printf("\nTolko odin pologitelnyi element!\n");

goto THREE;

}

while (a[i] <= 0)

++i;

++i;

while (a[i] <= 0) {

sum += a[i];

++i;

fprintf(fp,"\nSumma %.1i\n", sum);

THREE:

for ( j = N - 1; j >=0 && a[j] == 0.0; --j )

;

if ( j < 0 ){

printf("\nVse nulevye\n");

return 0;

}

for ( i = 0; i < j; ++i ){

while ( a[i] == 0 && i < j ){

tmp = a[i];

a[i] = a[j];

a[j--] = tmp;

}

}

for ( i = 0; i < N; ++i )

fprintf(fp,"ARR[%d] = %5.1d\n", i, a[i]);

fclose(fp);

system("pause");

return 0;

}

Соседние файлы в папке Смирнов