Поиск Cреднего Арифметического В Массиве С Использованием Функций

Тема в разделе "Общие вопросы по С и С++", создана пользователем Novice, 7 дек 2014.

Статус темы:
Закрыта.
  1. Novice

    Novice New Member

    Регистрация:
    7 дек 2014
    Сообщения:
    0
    Симпатии:
    0
    Вот дана задача:
    Найти среднее арифметическое всех элементов между минимальным и максимальным элементами в массивах А (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;
    }
    Прошу подсказать,что не так у меня с функцией нахождения среднего арифметического.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей