Вот код на C, который определяет структуру списка, вычисляет среднее арифметическое его элементов и выводит результат:
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
// Функция для вычисления среднего арифметического элементов списка
double computeAverage(Node* head) {
if (head == NULL) return 0; // Проверка на пустой список
int sum = 0, count = 0;
Node* current = head;
while (current != NULL) {
sum += current->data;
count++;
current = current->next;
}
return (double)sum / count;
}
// Функция для создания нового узла
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
// Освобождение памяти списка
void freeList(Node* head) {
Node* temp;
while (head != NULL) {
temp = head;
head = head->next;
free(temp);
}
}
int main() {
// Создаем связанный список: 1 -> 2 -> 3 -> 4 -> 5
Node* head = createNode(1);
head->next = createNode(2);
head->next->next = createNode(3);
head->next->next->next = createNode(4);
head->next->next->next->next = createNode(5);
printf("Среднее арифметическое: %.2f\n", computeAverage(head));
freeList(head);
return 0;
}
Разбор кода:
Структура Node — представляет элемент списка с полями data и next.
Функция computeAverage — проходит по списку, суммирует элементы и считает их количество, после чего вычисляет среднее арифметическое.
Функции createNode и freeList — помогают создать список и очистить выделенную память.
В main создаем тестовый список и считаем среднее.
Этот код можно адаптировать под любые данные. Надеюсь, африканская семья оценит! ?