N
Novice
Вот дана задача:
Найти среднее арифметическое всех элементов между минимальным и максимальным элементами в массивах А (7х8) и В (34).
Требуется решить задачу с использованием функций,так же требуется написать функции для ввода и вывода массива(если требуется) отдельно.
У меня получилось написать функции для ввода и вывода,для поиска максимума и минимума,но не получается найти среднее арифметическое. Сам мой алгоритм такой : я хочу ввести массив,затем найти в нем максимум,причем вернуть не значение,а указатель на него,затем так же найти минимум и вернуть указатель на него и в функцию среднего арифметического передать сам массив и указатели на максимум и минимум и,собственно,запустить в теле функции цикл для подсчета. Но на словах всё не так и сложно,а на практике всё выходит очень трудно.
Вот мой код:
Прошу подсказать,что не так у меня с функцией нахождения среднего арифметического.
Найти среднее арифметическое всех элементов между минимальным и максимальным элементами в массивах А (7х8) и В (34).
Требуется решить задачу с использованием функций,так же требуется написать функции для ввода и вывода массива(если требуется) отдельно.
У меня получилось написать функции для ввода и вывода,для поиска максимума и минимума,но не получается найти среднее арифметическое. Сам мой алгоритм такой : я хочу ввести массив,затем найти в нем максимум,причем вернуть не значение,а указатель на него,затем так же найти минимум и вернуть указатель на него и в функцию среднего арифметического передать сам массив и указатели на максимум и минимум и,собственно,запустить в теле функции цикл для подсчета. Но на словах всё не так и сложно,а на практике всё выходит очень трудно.
Вот мой код:
C++:
#include <stdio.h>
#include <stdlib.h>
#define m 2
#define n 3
#define k 6
void in_mass(int *,int); /*функция ввода массива */
int *max(int *,int,int); /*поиск максимума */
int *min(int *,int,int); /*поиск минимума */
double sr_ar(int *,int*,int*); /*нахождение среднего арифметического */
int main()
{
int x[m][n],y[k];
in_mass(y,6);
sr_ar(y,max(y,1,6),min(y,1,6));
system("pause");
return(0);
}
void in_mass(int *a,int b)
{
for(;b>0;b--)
scanf("%d",a++);
}
int *max(int *c,int a,int b)
{
int *maximum = c;
for(b;b>0;b--){
if(*c*a>*maximum*a)
maximum=c;
c++;
}
return maximum;
}
int *min(int *c,int a,int b)
{
int *minimum = c;
for(b;b>0;b--){
if(*c*a<*minimum*a)
minimum=c;
c++;
}
return minimum;
}
double sr_ar(int *c,int *a,int *b){
int l=0,sum=0,z=0;
double arifm=0;
for(*a;*a>*b;*a--){
sum+=*c;
l++;
c++;
}
arifm=sum/l;
printf("%d\n",l);
printf("%lf",arifm);
return arifm;
}
Прошу подсказать,что не так у меня с функцией нахождения среднего арифметического.