Создание линейного односвязного списка - C (СИ)
Формулировка задачи:
-найти произведение элементов списка.
-вывести на экран нечетные элементы списка.
Решение задачи: «Создание линейного односвязного списка»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> typedef struct _TNode { int value; struct _TNode* next; } TNode; //----------------------------------------------------------------------------- TNode* Push(TNode** list, int value) { TNode* node = malloc(sizeof(TNode)); node->value = value; node->next = *list; *list = node; return *list; } //----------------------------------------------------------------------------- int AllElements(int i) { return 1; } //----------------------------------------------------------------------------- int OnlyOddElements(int i) { return i & 1; } //----------------------------------------------------------------------------- void Print(const TNode* list, int (*Func)(int)) { int i = 0; for (; list; list = list->next) { if (Func(++i)) { printf("%d ", list->value); } } printf("\n"); } //----------------------------------------------------------------------------- int GetMultiplication(const TNode* list) { int result = 1; for (; list; list = list->next) { result *= list->value; } return result; } //----------------------------------------------------------------------------- int main(int argc, char* argv[]) { TNode* list = NULL; int i = 10; srand(time(NULL)); while (i--) { Push(&list, rand() % 10 + 1); } Print(list, AllElements); printf("multiplication = %d\n", GetMultiplication(list)); Print(list, OnlyOddElements); return EXIT_SUCCESS; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д