C语言使用链表编写职工工资表
#include<stdio.h>
#include<stdlib.h>
typedef struct employee //定义职工结构体
{
char name[20]; //姓名
int salary; //工资
struct employee *next;//指向下一个节点的指针
}employee;
void main() {
int i,n;
employee *head,*p1,*p2;//定义头指针,p1和p2均为中间变量;
printf("请输入要录入的职工人数:");
scanf("%d",&n);//读入数据总数目;
head = NULL;//初始化头指针为空;
for(i=0;i<n;i++) {
printf("\n请依次输入第%d位员工的姓名和工资:",i+1);
p1=(employee*)malloc(sizeof(employee));//申请新的空间存储新数据;
scanf("%s %d",&(p1->name),&(p1->salary)); //将新数据录入分别存储在name和salary中;
p1->next=NULL;//将新申请的空间中next域初始化为NULL。
if (head==NULL) head=p1; //如果头指针为空(即这是表中的第一条数据时);就将头部令为此时申请的地址。
else p2->next=p1 ;//如不是表中最前端一条信心时就将上一条信心所在地址中next变量令为此时申请内存地址。 p2=p1 ;//然后再将此时改变了next变量所在内存地址令成P2 (即上一条信心所在内存你加今得P2 ) } printf("\n\t 姓名 \t 工资 \n"); for ( p2=head ; p2!=NULL ; ) { printf("\t %s \t %5d \n", p2->name , p2->salary ); free ( p2 ) ; head = head -> next ; p2 = head ; } }
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!