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

Московский Государственный Университет Леса

ФЭСТ ВТ-11

Лабораторная работа №4.

Программирование на языках высокого уровня

Тема: “Одномерные массивы”

Выполнил студент Шадлова Н.А.

Проверил Ларионов Н.В.

Москва 2011.

1. Условия задания:

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

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

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

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

2. Листинг программы:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <math.h>

#define N 10

#define YES 1

#define NO 0

float array[N];

int main()

{

int imax,fplus,splus,j,k = 0;

float summ,max,temp;

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

{

printf("Vvedite element massiva %d: ",i+1);

scanf("%f",&array[i]);

}

max = array[0];

imax = 0;

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

if (fabs(array[i]) > max)

{

max = fabs(array[i]);

imax = i;

}

fplus = 0;

splus = 0;

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

{

if (array[i] > 0)

{

fplus = i;

break;

}

}

printf("%d\n",fplus);

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

{

if (array[i] > 0)

{

splus = i;

break;

}

}

printf("%d\n",splus);

summ = 0;

for(i = fplus;i <= splus;i++)

summ += array[i];

k = 0;

int is_zero = 1;

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

{

if (array[i] == 0)

{

for(int j = N - k;j > 0;j--)

{

if (array[j] != 0)

{

for(int m = j - 1;m >= 0;m--)

{

if (array[m] == 0)

{

is_zero = YES;

break;

}

else

is_zero = NO;

}

if (is_zero == NO) break;

if (array[j] != 0 && is_zero == YES)

{

printf("!\n");

array[i] = array[j];

array[j] = 0;

k++;

break;

}

}

}

}

}

printf("=================\n");

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

printf("%f\t",array[i]);

printf("\nMAX = %d\n",imax);

printf("SUMM = %f\n",summ);

getch();

return 0;

}