Выполнить сортировку уже созданного списка - C (СИ)
Формулировка задачи:
Необходимо выполнить сортировку уже созданного списка.Я видно напортачила с указателями, так как, честно признаюсь, "плаваю" в них. Программа просто не хочет идти дальше одной строки.
Есть список:
Программа доходит до строки
и дальше ничего не делает.
Вот код функции сортировки по возрастанию:
Думаю напортачила в указателях, в наименовании функции....
Хотела объявить переменные в функции: а - соответствует текущему элементу структуры, b - последующему, видно не получилось, не понял меня компилятор .
{char name [15]; int god;//год, по этому полю будет выполнятся сортировка по возрастанию struct spis *v1;//предыд элемент struct spis *v2;//послед элемент }; void swap (struct spis *); struct spis * head, * tail;//указатели на голову и хвост
{while (a->god>b->god);
void swap (struct spis *p) { struct spis *a=NULL; struct spis *b=NULL; a=p; b=p->v2; if (a==b) return; if (b!=tail) [COLOR="Red"]{while (a->god>b->god); [/COLOR]// здесь виснет и все... {if (a==head) {b->v1=NULL; b->v2=a; a->v1=b; b=head; } else if (a==tail) {b->v1=tail; b->v2=NULL; a->v2=b; tail=b; } else {b->v1=a->v1; b->v2=a; a->v1->v2=b; a->v1=b; } a=a->v2; } } else if ((a==head)&&(b==tail)) {b->v1=NULL; b->v2=a; a->v1=b; a->v2=NULL; b=head; a=tail; } else if (b==tail) {a->v1=tail; a->v2=NULL; b->v2=a; tail=a; } printf("\n ‘Отсортированный список\n"); }
Решение задачи: «Выполнить сортировку уже созданного списка»
textual
Листинг программы
/* Этот стиль практически не используется, но всё же его описание мне встречалось. Напоминает твой. В любом случае, его не стоит использовать, поскольку легко можно получиться, что визуально структура кода будет отличаться от реальной - тут сложно добавлять новые операторы в блоки и сложно искать ошибки. */ void doit(int x) { if(x>123) {dosmth1(); dosmth2(); dosmth3();} else {dosmth4(); dosmth5(); dosmth6();} }
Объяснение кода листинга программы
В данном коде выполняется условная операция с использованием оператора if. Если значение переменной x больше 123, то выполняются функции dosmth1(), dosmth2() и dosmth3(). В противном случае, когда значение переменной x меньше или равно 123, выполняются функции dosmth4(), dosmth5() и dosmth6(). Предполагается, что эти функции уже определены в другом месте программы. Стили кодирования могут отличаться в зависимости от предпочтений программиста, но в данном случае использован стиль, который редко используется и который может вызвать сложности при добавлении новых операторов или поиске ошибок.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д