Работа со списками, адресами - исправить ошибку - C (СИ)
Формулировка задачи:
Задание: работа со списками... подскажите ошибку в данной функции.
int Look(struct spisok *start, int index) { int i;struct spisok *tmp; tmp=start; for(i=1;i<=index;i++) tmp=tmp->next; return (tmp->info); }
Решение задачи: «Работа со списками, адресами - исправить ошибку»
textual
Листинг программы
struct spisok {int info; struct spisok *next;}; void Append(struct spisok *start, int x) {struct spisok *tmp,*tmp1; tmp=start; while(tmp->next!=NULL) tmp=tmp->next; tmp1=(struct spisok *)malloc(sizeof(struct spisok)); tmp1->info=x; tmp1->next=NULL; tmp->next=tmp1;start->info++;} struct spisok *Create(void) {struct spisok *tmp; tmp=(struct spisok*)malloc(sizeof(struct spisok)); tmp->info=0;tmp->next=NULL;return tmp;} int Pusto (struct spisok *start) {if(start->info)return 0; else return 1;} void Print(struct spisok *start) {struct spisok *tmp;int i; if (Pusto(start))puts("список пустой"); else{tmp=start;for(i=1;i<=start->info;i++) {tmp=tmp->next;printf("%d->%p ",tmp->info,tmp->next);} puts("");} } struct spisok *Poluchit_adres(struct spisok *start, int nomer) {int i; struct spisok *tmp; tmp=start; for(i=1;i<=nomer;i++) tmp=tmp->next; return tmp;} void Exchange (struct spisok *start, int nomer1, int nomer2) {struct spisok *tmp,*tmp1,*tmp2,*posle1,*posle2,*pered1,*pered2; int i; if(nomer1>nomer2) {i=nomer1;nomer1=nomer2;nomer2=i;} if((nomer2-nomer1)==1) {pered1=Poluchit_adres(start,nomer1-1); tmp1=pered1->next; tmp2=tmp1->next; posle2=tmp2->next; pered1->next=tmp2; tmp2->next=tmp1; tmp1->next=posle2;} else {pered1=Poluchit_adres(start,nomer1-1); tmp1=pered1->next; posle1=tmp1->next; pered2=Poluchit_adres(start,nomer2-1); tmp2=pered2->next; posle2=tmp2->next; pered1->next=tmp2; tmp2->next=posle1; pered2->next=tmp1; tmp1->next=posle2;} } int Size(struct spisok *start) {return start->info;} int Look(struct spisok *start, int index) { int i;struct spisok *tmp; tmp=start; for(i=1;i<=index;i++) tmp=tmp->next; return (tmp->info); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д