В список после каждого максимального числа вставить номер в списке - C (СИ)
Формулировка задачи:
Нужно в не рассортированный список вещественных чисел после каждого максимального числа вставить номер в списке и номер среди максимальных элементов этого же списка.
Решение задачи: «В список после каждого максимального числа вставить номер в списке»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> struct clist { double value; struct clist* link; }; struct mpair { double value; size_t count; }; struct clist * mk_node(double value, struct clist * lst) { struct clist * node = (struct clist *)calloc(1, sizeof(*node)); node->value = value; node->link = lst; return node; } void destroy(struct clist * lst) { struct clist* tmp; while (lst) { tmp = lst; lst = lst->link; free(tmp); } } struct mpair count_max(struct clist const * lst) { struct mpair m; struct clist const* tmp; m.count = 0; m.value = 0.0; if (lst) { m.count = 1; m.value = lst->value; tmp = lst->link; while (tmp) { if (m.value == tmp->value) m.count++; else if (m.value < tmp->value){ m.count = 1; m.value = tmp->value; } tmp = tmp->link; } } return m; } struct clist * insert(double value, struct clist *lst) { lst->link = mk_node(value, lst->link); return lst->link; } void mk_work(struct clist* lst) { size_t id, i; struct mpair m = count_max(lst); i = 0; id = 0; while (i < m.count) { if (lst->value == m.value) { lst = insert(i, insert(id, lst)); ++i; } lst = lst->link; ++id; } } int main() { return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д