Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Сорокин / Лабораторные / POINTER
.CPP#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#define N 10
#define YES 1
#define NO 0
float* get_ap(float array[],int);
void sort(float array[]);
float find_max(float array[]);
int find_first_plus(float array[]);
int find_second_plus(float array[],int);
void vvod(float array[]);
float array[N];
int main()
{
int fplus,splus= 0;
float summ,max;
vvod(array);
max = find_max(array);
printf("!!!!%f!!!!!\n",max);
fplus = find_first_plus(array);
splus = find_second_plus(array,fplus);
printf("!!!%d!!!\n",fplus);
printf("!!!%d!!!\n",splus);
summ = 0;
for(int i = fplus+1;i < splus;i++)
summ += array[i];
sort(array);
printf("=================\n");
for(i = 0;i < N;i++)
printf("%f\t",array[i]);
printf("\nMAX = %f\n",max);
printf("SUMM = %f\n",summ);
getch();
return 0;
}
void sort(float array[])
{
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;
}
}
}
}
}
float find_max(float array[])
{
float max = array[0];
int imax = 0;
float* ap;
float* beg = get_ap(array,0);
for(ap = beg;ap < (beg + N);ap++)
if (fabs(*ap) > max)
{
max = fabs(*ap);
imax = (beg + N) - ap;
}
return max;
}
int find_first_plus(float array[])
{
int fplus = 0;
float* beg = get_ap(array,0);
float* ap = NULL;
for(ap = beg;ap < (beg + N);ap++)
{
if (*ap > 0)
{
fplus = ap - beg;
return fplus;
}
}
}
int find_second_plus(float array[],int fplus)
{
int splus;
float* ap = NULL;
float* beg = get_ap(array,0);
for(ap = fplus + 1 + beg;ap < (beg + N);ap++)
{
if (*ap > 0)
{
splus = ap - beg;
return splus;
}
}
return splus;
}
void vvod(float array[])
{
for (int i = 0;i < N;i++)
{
printf("Vvedite element massiva %d: ",i+1);
scanf("%f",&array[i]);
}
}
float* get_ap(float array[],int index)
{
return &array[index];
}
Соседние файлы в папке Лабораторные