#include <stdio.h>
#include <math.h>
#include  <stdlib.h>
void swap (int *a, int *b)

{
    int c = *a;
    *a = *b;
    *b = c;
}

void Poisk (double a[], int size, int *imax, int *imin )

{
    int i;

    double max,min;
    max=0;
    *imax=i;
    min=0;
    *imin=i;
    printf("Poisk\n");
    for (i = 0; i < size; i++)

    {
        printf("%d\t%f\n", i+1, a[i]);
        if(max<a[i])
        {
        max=a[i];
        *imax=i;
        }
         if(min>a[i])
        {
        min=a[i];
        *imin=i;
        }
    }

}

void Show (double a[], int size )
{
    int i;
     for (i = 0; i <size; i++)
        {
        if (i  % 10 == 0)
        {
                printf ("\n");
        }

                printf ("%.1lf  ", a[i]);

        }
    printf("\n");


}


void Sorting (double a[],int size)
{
    int i = 0, t = 0, j = 0;

    for (j = 0; j < size - 1; j++)
    {
        for (i = size - 2; i >= j ; i--)
        {
        if (a[i] > a[i+1])
            {
            t = a[i];
            a[i] = a[i+1];
            a[i+1] = t;
            }
        }
    }
    Show(a,size);
}

double Summa (double a[], int size)
{
    int i;
    double sum = 0;
    for (i = 0; i < size; i++)
        {  if (a[i] < 0) sum = sum + a[i]; }
    return sum;
}

double Proizvedenie (double a[], int size)
{
int first,
    end;
double pr = 1;

Poisk(a, size, &first, &end);
if (first < end)
{
    for (first; first < end; first++)
    {
        pr *= a[first];
    }
}
else
{
swap(&first, &end);
 for (first; first < end; first++)
    {
        pr *= a[first];
    }
}

return pr;
}

int main()
{
    srand(time(NULL));
    int size,i,N,n;

    printf ("Vvedite N\n ");
    scanf ("%i", &size);


   double *a =(double *)malloc(size*sizeof(double));


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

    a[i] = (rand() % 201) - 100;
    }
    Show(a, size);
    printf ("summa = %.1lf\n", Summa(a, size));
    printf (" proizvedenie = %.1lf \n", Proizvedenie(a, size));

    printf ("Po vozrastaniy: ");
    Sorting(a, size);
    free(a);
    return 0;
}
