#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct factor{
int id; //工號
char name[20]; //姓名
float wages; //薪水
struct factor *next; //下一節點的頭指針
};
struct factor *create(){
struct factor *p1,*p2,*head;
int n=0;
p1 = p2 = (struct factor*)malloc(sizeof(struct factor));
scanf("%d,%f,%s",&p1->id,&p1->wages,&p1->name);
head = NULL;
while(p1->id != 0){
n++;
if(n == 1)
head = p1; //把第一個節點指針賦值給頭指針
else
p2->next = p1; //如果是第2.....n個節點 把新分配的p1地址賦值給當前節點的下一個指針元素
p2 = p1; //當前節點指針同步到新的分配內存地址
p1 = (struct factor*)malloc(sizeof(struct factor)); //分配新的內存空間
scanf("%d,%f,%s",&p1->id,&p1->wages,&p1->name);
}
p2->next = NULL; //跳出循環後當前節點的下一頭指針值爲NULL
return head;
}
int main() {
struct factor *p;
//int i=0;
p = create();
while(1){
printf("%d\t%s\t%0.2f\n",p->id,p->name,p->wages);
p=p->next;
if(p == NULL)
break;
}
return EXIT_SUCCESS;
}
【C語言】動態鏈表建立工人檔案,並輸出結果
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.