Функция вычисляет сумму и среднее массива - C (СИ)
Формулировка задачи:
void meanSum (double a[], int n, double *sum, double *mean);
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
void inputError () {
printf("Ошибка ввода\n");
exit(EXIT_FAILURE);
}
int readInt () {
int a;
if (scanf("%d", &a) != 1)
inputError();
return a;
}
double readDouble() {
double a;
if (scanf("%lg", &a) != 1)
inputError();
return a;
}
void readArray (double *array, int n) {
printf("Введите %d чисел через пробел:\n", n);
for (int i = 0; i < n; i++) {
array[i] = readDouble();
}
}
void printArray (double *array, int n, char *str) {
printf("%s{", str);
if (n > 0) {
printf("%lg", array[0]);
}
for (int i = 1; i < n; i++) {
printf(", %lg", array[i]);
}
printf("}\n");
}
int min (int a, int b) {
if (b < a) return b;
return a;
}
void sumMean (double a[], int n, double *sum, double *mean) {
if (n <= 0) ;
for (int i = 0; i < n; i++) {
*sum += a[i];
*mean = *sum / n;
}
}
int main () {
printf("Введите длину массива: ");
int n = readInt();
if (n < 0) inputError();
double array[n], sum, mean;
readArray(array, n);
sumMean(array, n, &sum, &mean);
printf("Sum:%lg\nMean:%lg\n",sum,mean);
}Решение задачи: «Функция вычисляет сумму и среднее массива»
textual
Листинг программы
for (int i = 0; i < n; i++) {
*sum += a[i];
}
*mean = *sum / n;
Объяснение кода листинга программы
- В цикле происходит итерация по элементам массива
aот 0 до n-1 - Переменная
sumнакапливает сумму элементов массива - Переменная
meanвычисляет среднее значение, разделив сумму на количество элементов массива