910.
設計說明:
1. 利用動態記憶體配置(dynamic memory allocation)的方式,嘗試建立三個節點(node),分別為 a、b、c 的鏈結串列。
2. 節點的資料型態為結構,包含三個項目,分別為學生姓名、分數、及指向本身結構的指標。
3. 此三個節點所形成的鏈結字串如下:
4. 請以一個迴圈印出此鏈結踹列每一節點的內容。
5. 程式完成正確釋放記憶體。
6. 執行結果如範例圖。
參考程式碼:
TQC+ C 試題總整理
- #include<stdlib.h>
- #include<stdio.h>
- int main(){
- struct node{
- char name[10];
- int score;
- struct node* next;
- };
- struct node *a,*b,*c,*current;
- a=malloc(sizeof(struct node));//配置動態記憶體大小方式
- printf("請輸入第一個學生姓名: ");
- scanf("%s",a->name);
- printf("分數: ");
- scanf("%d",&a->score );
- a->next=NULL;
- b=malloc(sizeof(struct node));
- printf("請輸入第二個學生姓名: ");
- scanf("%s",b->name);
- printf("分數: ");
- scanf("%d",&b->score );
- a->next=b;
- b->next=NULL;
- c=malloc(sizeof(struct node));
- printf("請輸入第三個學生姓名: ");
- scanf("%s",c->name);
- printf("分數: ");
- scanf("%d",&c->score );
- b->next=c;
- c->next=NULL;
- printf("\n輸出...\n");
- current = a;
- while(current!=NULL){
- printf("學生: %s\n",current->name);
- printf("分數: %d\n\n",current->score);
- current=current->next;//每顯示完畢後一次,將指標指給下一個
- }
- free(a);//釋放記憶體
- free(b);
- free(c);
- system("PAUSE");
- return 0;
- }
TQC+ C 試題總整理
聲明:
這裡的範例程式碼皆由本人親自編輯,歡迎轉載本教學,但請註明本網站,尊重一下作者的心血
會出現無效轉換在3個malloc前加上 (struct node *)
回覆刪除無效轉換10,16,23 後面改成(struct node *)malloc(sizeof(struct node))
回覆刪除