#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct people
{
char name[10];
int age;
struct people * next;
};
int main()
{
struct people * head=NULL;
struct people * prev , * current;
int flag=1;
while(flag!=0)
{
?printf("請輸入學生姓名,年齡:(年齡輸入0結束所有輸入工作)\n"); ?current=(struct people *)malloc(sizeof(struct people)); ?if(head==NULL) ?head=current; ?else ?prev->next=current; ?current->next=NULL; ?scanf("%s",¤t->name); ?scanf("%d",¤t->age); ?prev=current; ?flag=current->age;}
printf("Output:\n");
if(head==NULL)
?printf("無資料。\n");else
{
?current=head; ?while(current->next!=NULL) ?{ ?printf("姓名:%s\n年齡:%d\n\n",current->name,current->age); ?current=current->next; ?}}
}
至於排序,斷開舊鏈表,將前後指針鏈接到新的節點就好
如果還有問題歡迎再問哈