Подсчитать среднее арифметическое для положительных элементов массива - 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; }
Объяснение кода листинга программы
- Включаются заголовочные файлы stdio.h и conio.h
- Определяется функция Print, которая выводит элементы массива на экран
- В функции main создается массив a типа float с размером 21 и инициализируется нулями
- Инициализируются переменные av, max, avMax, i, imax, avCount и sz нулями
- Выводится приглашение для ввода элементов массива
- В цикле do-while считываются элементы массива, проверяется их положительность, суммируются и подсчитываются
- Вычисляется размер массива sz и среднее арифметическое av
- Выводится на экран массив a и его среднее арифметическое av
- Считывается значение avMax
- В цикле for корректируются элементы массива a в соответствии с avMax и максимальным элементом max
- Выводится на экран откорректированный массив a, максимальное значение max и его индекс imax
- Функция main завершается возвратом 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д