第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)于c語言初學(xué)鏈表問題,問題在注釋里?

關(guān)于c語言初學(xué)鏈表問題,問題在注釋里?

C
月關(guān)寶盒 2018-07-16 09:06:52
#include <stdio.h>#include <stdlib.h>struct node{int data;struct node *next; };struct node *add(struct node *head);//創(chuàng)建節(jié)點 void display(struct node *head);//輸出鏈表每項數(shù)據(jù) int main(){char ans;struct node *mylink=NULL;printf("要加入新的節(jié)點嗎?");scanf(" %c",&ans);while(ans!='n'){mylink=add(mylink);printf("要再加入新的節(jié)點嗎?");scanf(" %c",&ans); } display(mylink);} struct node *add(struct node *head){int data;struct node *pr=(struct node *)malloc(sizeof(struct node)); if(head==NULL){head=pr;printf("輸入數(shù)據(jù)"); scanf(" %d",&(head->data));head->next=NULL;}else{struct node *p=head;while(p->next !=NULL) //這里不是也有p->next!= NULL嗎? {p=p->next;}printf("輸入數(shù)據(jù)"); scanf(" %d",&(p->data));p->next=NULL;}}void display(struct node *head){struct node *p=head;while(p != NULL) // 為什么改成 while(p->next!= NULL) 程序就會崩潰,而且不能調(diào)試,我發(fā)現(xiàn)在display函數(shù)里只要有 這一句程序就會崩潰,而上面的42行卻沒有問題 {printf("%d",p->data);p=p->next;}}
查看完整描述

1 回答

?
DIEA

TA貢獻1820條經(jīng)驗 獲得超3個贊

  1. 把while(p != NULL)改成while(p->next!= NULL)的話,從代碼看不會有崩潰的問題,只是最后一個結(jié)點的內(nèi)容打印不出來。這里的邏輯應(yīng)該是while(p != NULL),結(jié)點指針不為空就輸出。

  2. 這代碼若崩潰,原因不在你說的那里,而在于函數(shù)add中的else以后的代碼邏輯錯誤,要改成如下才行——

https://img1.sycdn.imooc.com//5b59d6b50001d0c807270200.jpg

查看完整回答
反對 回復(fù) 2018-07-26
  • 1 回答
  • 0 關(guān)注
  • 796 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號