30.05.2016, 18:56
общий
это ответ
Здравствуйте, dasha.com!
Вот, подправил малость
[code h=200]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double arr_proc(double *arr, int n, double * psum)
{
double prod=1;
int i=0,j=0;
double min,max;
for(*psum=0,i=0; i<n; i++)//сумма отрицательных
if(arr[i]<0)
*psum+=arr[i];
for(i=0; i<n-1; i++) //сортировка пузырьком
{
for(j=i+1; j<n; j++)
{
if(arr[i] > arr[j]) //если меньше, меняем местами со след
{
double tmp = arr[i];
arr[i] = arr[j] ;
arr[j] = tmp;
}
}
}
printf("\nОтсортированная матрица\n");//вывод отсортированной
for(i=0; i<n; i++)
printf("%3.1lf ",arr[i]);
printf("\n");
min = arr[0];//мин на начале массива
max = arr[n-1];//макс на конце, т.к массив по возрастанию
printf("\nmin = %3.1lf \nmax = %3.1lf\n\n",min,max);
for(i = 1; i < n-1; i++)//произведение элементов между min и max
prod*=arr[i];
return prod;
}
double arr_proc(double *arr, int n, double * psum);
int main()
{
system ("chcp 1251 > nul");
srand (time(NULL));
int n=0,i=0;
double prod=0;
double psum=0;
printf("\nРазмер массива: ");
scanf("%d", &n);
double *arr = (double*)malloc(sizeof(double)*n);
for(i = 0; i < n; i++)
arr[i] = (double)(rand()%201-100)/10;//создание массива
for(i = 0; i < n; i++)
printf("%3.1lf ",arr[i]);
printf("\n");
prod=arr_proc(arr,n,&psum);//вызов функции
printf("\nСумма отрицательных= %.1f\nПроизведение элементов между max и min= %.1lf\n", psum, prod);
system ("pause");
free(arr);
return 0;
}
[/code]
5
Огромное спасибо, вы очень выручили меня!!!
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен