为什么每次输出的只有最后一个节点的信息,前面的节点为什么输出不了呢
程序代码:
#include<stdio.h> #include<stdlib.h> typedef struct player{ int number; char name[20]; struct player*next; }Player; Player*game(int sum); int main() { int sum; printf("请输入玩家个数"); scanf("%d",&sum); Player*head; head=game(sum); int i; while(head!=NULL){ printf("%d,%s",head->number,head->name); } return 0; } Player*game(int sum) { int i; Player*head,*pt,*pre; //头节点过度节点,尾节点 for(i=0;i<sum;i++){ pt=(Player*)malloc(sizeof(Player)); scanf("%d%s",&pt->number,pt->name); if(pt!=NULL){ head=pt; pre=pt; pre->next=pt; } pt->next=NULL; } return head; }