这道c语言练习题折磨了我好久好久,改了好几次,最终结果勉强觉得还能接受。
附上代码
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct customer
{
char ID[11];
struct customer* next;
}cus;
cus* creatlist()
{
cus* headnode = (cus*)malloc(sizeof(cus));
headnode->next =NULL;
return headnode;
}
cus* createnode(char data[11])
{
cus* newnode = (cus*)malloc(sizeof(cus));
int i=0;
while(data[i])
{
newnode->ID[i]=data[i];
i++;
}
newnode->ID[i]='\0';
newnode->next = NULL;
return newnode;
}
void addID(cus* list)
{
printf("请输入客户ID\n");
char data[11];
gets(data);
cus* newnode = createnode(data);
cus* backfrontnode=list;
cus* backnode=backfrontnode->next;
while(backnode)
{
backnode=backnode->next;
backfrontnode=backfrontnode->next;
}
newnode->next=backnode;
backfrontnode->next=newnode;
}
void printlist(cus* list)
{
cus* pmove=list->next;
int i=1;
while(pmove)
{
printf("%d.\t%s\n",i,pmove->ID);
i++;
pmove=pmove->next;
}
putchar('\n');
}
int main()
{
char n='a';
cus* list = creatlist();
do
{
system("cls");
addID(list);
fflush(stdin);
printf("输入0退出,回车键继续\n");
n=getchar();
fflush(stdin);
}while(n!='0');
system("cls");
printf("正在排队的客户有:\n\n");
printlist(list);
return 0;
}