struct Student{
int studid; /*學號*/
char name[10]; /*姓名*/
int math; /*數學成績*/
int english; /*英語成績*/
int total; /*總成績*/
struct Student *next; /*指向下一個結點的指標*/
};
struct Student *pstudHead; /*指向頭結點的全域指標變數*/
void main(){
struct Student *p; /*臨時結構體指標*/
pstudHead =( struct Student *)malloc(sizeof(struct Student));
pstudHead->next=NULL;
while(1)
{
p = (struct Student*)malloc(sizeof(struct Student));
scanf("%d", &(p->studid));
if (p->studid == -1)
{ free(p); break; }
scanf("%s", &(p->name)); scanf("%d", &(p->math));
scanf("%d", &(p->english)) ; p->total = p->math+ p->english;
p->next = pstudHead->next; pstudHead->next = p;
}
p= pstudHead->next;
printf(" 學號 \t\t 姓名\t 數學成績 英語成績 總分 \n");
while(s!=NULL) {
printf("%d\t", p ->studid); printf("%s\t", p ->name);
printf("%d\t", p ->math); printf("%d\t", p ->english);
printf("%d\n", p ->total); p = p ->Next;
}
}
課本的程式,一直搞不懂這里
uj5u.com熱心網友回復:
當輸入完第一個學生時,p->next=NULL,patudHead->next=第一個指標。當輸入完第二個學生,p指向第一個學生,頭指向第二個學生
所以每次回圈是,新加的學生指向前一個學生,鏈表的頭指向最新加的學生。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/121035.html
標籤:新手樂園
下一篇:什么是PHP Socket?
