Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Сорокин / Лабораторные / lab05
.cpp#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;
}
}
}
}
}
Соседние файлы в папке Лабораторные