Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Хрень по программированию. Кто знает напишите пж, получите респект от всей африканской семьи.

ебубабульку Ученик (131), открыт 3 недели назад
Для указанного ниже представления списка опишите на языке C соответствующий тип list (считать тип информационной части элементов простым), определите переменную L (и, если необходимо, вспомогательные переменные) и напишите последовательность операторов для вычисления среднего арифметического элементов непустого списка.
2 ответа
Эльдар Ибрагимов Профи (973) 3 недели назад
Вот код на 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 создаем тестовый список и считаем среднее.
Этот код можно адаптировать под любые данные. Надеюсь, африканская семья оценит! ?
Андрей Высший разум (477980) 3 недели назад
 #include <stdio.h>
#include <stdlib.h>

typedef struct node *list; // требуемый тип list
typedef struct node {
int value;
list next;
};

int main() {
list L = NULL; // требуемая переменная L

// заполнение списка L 20 случайными числами в диапазоне -100 ... 100
for(int i = 0; i < 20; ++i) {
list t = malloc(sizeof(struct node));
t->value = 100 - rand() % 201;
t->next = L;
L = t;
}

// вывод списка на экран
for (list p = L; p; p = p->next) {
printf("%25d ", p->value);
}
printf("\n");

// среднее арифметическое
long sum = 0, cnt = 0;
for (list p = L; p; p = p->next) {
sum += p->value;
++cnt;
}
printf("%25lf", sum / (double)cnt);
}
Похожие вопросы