Программа, которая сортитует список из целых чисел. Числа вводятся с терминала, результат выводится на терминал. - C (СИ)
Формулировка задачи:
Здравствуйте! В программе нужно отсортировать список. Я пыталась, не разрывая связей между элементами списка, менять только информационную часть. Методом пузырьков. Но отсортировать не получается. Если не сложно, подскажите пожалуйста, где может быть ошибка.
#include <stdio.h> #include <conio.h> #include <stdlib.h> struct sp { int a; sp *next; }; void add_record(sp **start, sp **last, int n) { int i; sp *nov; for (i=1; i<=n; i++) { nov=(sp*)malloc(sizeof(sp)); nov->next=NULL; printf("\nput an element "); scanf("%d", &(nov->a)); if ((*last)==NULL) { (*start)=nov; (*last)=nov; } else { (*last)->next=nov; (*last)=nov; } } } void read_list(sp *start) { while (start!=NULL) { printf("%d ",start->a); start=start->next; } } void delete_list(sp **start) { sp *pr; pr=NULL; while (*start!=NULL) { pr=(*start); (*start)=(*start)->next; free(pr); } } void main() { clrscr(); sp *start, *last, *pr, *cur; int n, b, i, j; start=NULL; last=NULL; printf("\nPut a number of elements "); scanf("%d",&n); add_record(&start,&last,n); pr=NULL; cur=start; for (i=1; i<=n; i++) { for (j=n; j<i; j--) { pr=cur; cur=cur->next; if ((cur->a)>(pr->a)) { b=cur->a; cur->a=pr->a; pr->a=b; } } cur=start; } read_list(start); delete_list(&start); }
Решение задачи: «Программа, которая сортитует список из целых чисел. Числа вводятся с терминала, результат выводится на терминал.»
textual
Листинг программы
for (j=n; j>i; j--)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д