Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
17.04.2015
Размер:
2.12 Кб
Скачать
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 10
#define YES 1
#define NO 0

int findmax(float*,int);
int findfirstplus(float*,int);
int findsecplus(float*,int,int);
void sort(float*,int);

int main()
{

	float* array;
	float summ = 0;
	int i,imax,first,sec;
	array = new float[N];
	for(i = 0;i < N;i++)
	{
		printf("Vvedite %d chislo: ",i);
		scanf("%f",&array[i]);
	}	

	printf("==============================\n");
	for (i = 0;i < N;i++)
		printf("%f\n",array[i]);

	imax = findmax(array,N);
	printf("Index of max element is %d; max element = %f\n",imax,array[imax]);
	
	first = findfirstplus(array,N);
	printf("index of first plus element is %d; first plus element = %f\n",first,array[first]);

	sec = findsecplus(array,first,N);
	printf("index of second plus element is %d; second plus element = %f\n",sec,array[sec]);


	for (i = first + 1;i < sec;i++)
		summ += array[i];
	printf("summ = %f\n",summ);

	sort(array,N);

	printf("==============================\n");
	for (i = 0;i < N;i++)
		printf("%f\n",array[i]);
	delete array;
	system("pause");
	return 0;
}

int findmax(float* array,int n)
{
	int i,imax = 0;
//	float max = 0;
	for(i = 0;i < n;i++)
		if (fabs(array[i]) > fabs(array[imax]))
			imax = i;
	return imax;
}

int findfirstplus(float* array,int n)
{
	int i;
	for(i = 0;i < n;i++)
		if (array[i] > 0)
			return i;

}

int findsecplus(float* array,int first,int n)
{
	int i;
	for (i = first + 1;i < n;i++)
		if (array[i] > 0)
			return i;
}


void sort(float* array,int n)
{
	int i,j,k = 0;
	int is_zero = 1;
	for(i = 0;i < n - k;i++)
	{
		if (array[i] == 0)
		{
			for(j = n - k - 1;j > i;j--)
			{
				if (array[j] != 0)
				{
					for(int m = j;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;
				}
			}
		}
	}
}
Соседние файлы в папке Лабораторные