C语言:查找链表中最高基本工资的职工信息

一、题目

建立一个单向链表,头指针是list,链表中每个结点包含姓名、基本工资信息,编写max_list函数查找链表中最高基本工资的职工信息。要求在主函数中建立单向链表(注:当输入基本工资为0时,表示输入结束。),然后调用max_list函数查找链表中最高基本工资的职工信息,最后输出查找结果。

二、程序清单

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

typedef struct staff {
	char name[10];//姓名
	int wages;//工资
	struct staff* next;//指向下一个结点的指针
};

staff* max_list(staff* list)
{
	staff* p= list->next;//p指向首元结点
	staff* q = NULL;
	int max = p->wages;
	while (p!= NULL)//指针判空
	{
		if (p->wages > max)//依次比较各员工工资高低
		{
			max = p->wages;
			q = p;
		}
		p = p->next;//p指向下一个结点
	}
	return q;//返回最高基本工资的职工信息
}

void CreatList(staff* list)//初始化员工信息函数(尾插法)
{
	staff* r = list;//定义尾指针
	int n = 1;
	while (1)
	{
		staff* p = (staff*)malloc(sizeof(staff));//生成新结点
		printf("请输入第%d个员工的姓名、工资:", n);
		scanf("%s %d", &p->name, &p->wages);//输入员工姓名及工资
		n++;
		r->next = p;//将结点插入表尾
		if (p->wages != 0)//当输入基本工资为0时,表示输入结束
			r = r->next;//将尾指针后移一位
		else
			break;
	}
	r->next = NULL;//尾结点的指针域为NULL
}

int main()
{
	staff* list = (staff*)malloc(sizeof(staff));
	CreatList(list);//调用初始化员工信息函数
	printf("最高工资员工姓名:%s\n最高工资员工工资:%d", max_list(list)->name, max_list(list)->wages);
	return 0;
}

三、运行结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值