Подсчитать среднее арифметическое для положительных элементов массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Помогите пожалуйста с кодом, просто хотя бы посмотреть и разобраться в синтаксисе, само задание не очень сложное. Буду очень благодарен. И если кто сможет, помогите с математической постановкой этой задачи. Очень жду и надеюсь. Спасибо В массиве, содержащем не более 21 числа, подсчитать среднее арифметическое для положительных элементов. Если среднее больше заданного числа, положительные элементы исходного массива уменьшить на это число, а отрицательные - увеличить. Найти максимальный элемент полученного массива и его номер. Формат числа цц.ц.

Решение задачи: «Подсчитать среднее арифметическое для положительных элементов массива»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
void Print(float *a,int sz)
{
    int i;  
    for(i=0;i<sz;i++)
        printf("%6.1f",a[i]);
    printf("\n");
}
int main()
{
    const int n = 21;
    float a[n],av=0,max,avMax;
    int i=0,imax,avCount=0,sz;
    memset(a,0,sizeof(int));
    printf("Enter items of array, max - 21, exit - [-1]\n");
    do
    {
        printf("a[%i] = ",i);
        scanf("%f",&a[i]);
        if(a[i]>=0)
        {
            av+=a[i];
            avCount++;
        }
        i++;
    }while(a[i-1]!=-1 && i<21);
    sz = i-1;
    av/=avCount;
    Print(a,sz);
    printf("Average = %2.1f\n",av); 
    printf("Digit = ");
    scanf("%f",&avMax);
    for(i=0;i<sz;i++)
    {
        if(av>avMax)
            if(a[i]<0)a[i]+=avMax;
            else a[i]-=avMax;
        if(!i)
        {
            max=a[i];
            imax=i;
        }
        if(a[i]>max)
        {
            max= a[i];
            imax = i;
        }
    }
    Print(a,sz);
    printf("Max = %2.1f\nimax = %i",max,imax);
    getch();
    return 0;
}

Объяснение кода листинга программы

  1. Включаются заголовочные файлы stdio.h и conio.h
  2. Определяется функция Print, которая выводит элементы массива на экран
  3. В функции main создается массив a типа float с размером 21 и инициализируется нулями
  4. Инициализируются переменные av, max, avMax, i, imax, avCount и sz нулями
  5. Выводится приглашение для ввода элементов массива
  6. В цикле do-while считываются элементы массива, проверяется их положительность, суммируются и подсчитываются
  7. Вычисляется размер массива sz и среднее арифметическое av
  8. Выводится на экран массив a и его среднее арифметическое av
  9. Считывается значение avMax
  10. В цикле for корректируются элементы массива a в соответствии с avMax и максимальным элементом max
  11. Выводится на экран откорректированный массив a, максимальное значение max и его индекс imax
  12. Функция main завершается возвратом 0

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.429 из 5
Похожие ответы