c -我如何修复这个链表输出?


#include <stdio.h>
#include <stdlib.h>
struct node{
int sayi;
struct node* sonraki;

};
struct node* baslangic=NULL;

struct node* olustur(int sayi){
struct node* yenidugum=(struct node*)malloc(sizeof(struct node));
yenidugum->sayi=sayi;
yenidugum->sonraki=NULL;
return yenidugum;

}
void sonaekle(int sayi){
struct node* sonaeklenecek=olustur(sayi);
if(baslangic==NULL){
baslangic=sonaekle;
}
else
{
struct node* temp=baslangic;
while(temp->sonraki!=NULL){
temp=temp->sonraki;
temp->sonraki=sonaekle;
}

}
}
void yazdir(){

struct node* temp=baslangic;
while(temp!=NULL){

printf("%d =>",temp->sayi);
temp=temp->sonraki;
}
}
int main()
{

int secim, sayi;
while(1){
printf("1-Sona eleman ekle.....n");
printf("Yapmak istediginiz secimi yapin...n");
scanf("%d",&secim);

switch(secim){
case 1:
printf("Hangi elemani ekleyeceksiniz..n");
scanf("%d",&sayi);
sonaekle(sayi);
yazdir();
break;
}
}
return 0;
}

我试图做链表,但当我运行这段代码它给出的输出如下:-443987883 =>。我错在哪里?我找不到。谢谢你的回答和你的时间。

有错别字

不是

baslangic=sonaekle;

当你将类型为void ( * )( int )的函数指针赋值给类型为node *的指针时,你需要写

baslangic=sonaeklenecek;

代替while loop

while(temp->sonraki!=NULL){
temp=temp->sonraki;
temp->sonraki=sonaekle;
}

你需要写

while(temp->sonraki!=NULL){
temp=temp->sonraki;
}
temp->sonraki = sonaeklenecek;

相关内容

  • 没有找到相关文章

最新更新