#include "stdio.h"#include<malloc.h>#include<string.h>#define LEN sizeof(struct student)struct student{ int num; int score; struct student*next;};struct student*create(){ char ch;? ? struct student *head;? ? struct student*p1,*p2;? ? int a=0;? ? printf("是否輸入新數(shù)據(jù):\n");? ? while(toupper(ch=getche())=='Y');? ? {? ? p1=(struct student*)malloc(LEN);? ? printf("\n請(qǐng)輸入:");? ? scanf("%d%d",&p1->num,&p1->score);? ? printf("是否輸入新數(shù)據(jù):\n");? ? a++;? ? if(a==1) head=p1;? ? else p2->next=p1;? ? p2=p1;? ? p1->next=NULL;? ? }? ? return(head);}void print(struct student *head){ struct student *p; p=head; while(p!=NULL) { printf("\n學(xué)號(hào):%d,成績(jī):%d",p->num,p->score); p=p->next; }}void main( ){ struct student *stu; stu=create(); print(stu);}
2 回答
已采納

zy112
TA貢獻(xiàn)8條經(jīng)驗(yàn) 獲得超10個(gè)贊
??if(a==1)?head=p1; ??else?p2->next=p1; ????p2=p1; ????p1->next=NULL;
你的代碼這里有問(wèn)題,到底想干啥呢??我建議你寫if else 的時(shí)候最好加上括號(hào),這樣不會(huì)混,而且你的返回值是返回 head, 但是else里面根本沒(méi)有 head的事,同時(shí),main里面,你要循環(huán)輸出的時(shí)候,只輸出一個(gè)嗎?如果有多個(gè)的話應(yīng)該怎么辦呢?是不是應(yīng)該判斷一下。這是主要的問(wèn)題,你可以自己先改改看 ,實(shí)在改不了的話,就回復(fù)我一下,不會(huì)的我在和你說(shuō)說(shuō),或者改了給你看看也行。。
- 2 回答
- 0 關(guān)注
- 1709 瀏覽
添加回答
舉報(bào)
0/150
提交
取消