C语言课本 指针动态管理 链表相关

#include <stdio.h>
#include <stdlib.h>

struct workertype{
long workno;
char workname[20];
char worksex;
float workwages;
struct workertype *next;
};

void appendnewnode();
void listall();

struct workertype*head=NULL,*currnode,*newnode;
void main(){
char ch;
int flag=1;
while (flag)
{
printf("\n输入E新建一个数据");
printf("\n输入L列出所有:");
fflush(stdin);
scanf("%c",&ch);
switch(ch)
{
case ‘e’:
case ‘E’:appendnewnode();break;
case ‘l’:
case ‘L’:;listall();break;
default:flag=0;
}

}
}

void appendnewnode(){
char numstr[20];
newnode=(struct workertype*)malloc(sizeof(struct workertype));

if(head==NULL) head=newnode;
else {currnode=head;
while (currnode->next!=NULL)
currnode=currnode->next;
currnode->next=newnode;

}
currnode=newnode;
printf("\n输入员工号");
scanf("%d",&currnode->workno);
printf("\n输入员工姓名");
scanf("%s",currnode->workname);
printf("\n输入员工性别");
//getchar();
scanf("%c",currnode->worksex);

getchar();
printf("\n输入职工工资");
scanf("%f",&currnode->workwages);
currnode->next=NULL;
}

void listall()
{
int i=0;
if(head==NULL)
{
printf("\n 空列表\n");
return;
}
currnode=head;
do
{
printf("\n 数字:%d",++i);
printf("\n 职工号:%ld",currnode->workno);
printf("\n 职工姓名:%s",currnode->workname);
printf("\n 职工性别:%c",currnode->worksex);
printf("\n 职工工资:7.2f\n",currnode->workwages);
currnode=currnode->next;

}while(currnode!=NULL);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值