C语言编程【问题描述】在上题结构体定义的基础上,在主函数main中输入5个人的信息,然后输出应发工资总额、工资数最大者和最小者信息。 【输入形式】 【输出形式】 【样例输入】 zhangsan 954 1000 lisi 930 1200 wangwu 920 1100 sunliu 900 1120 liuba 910 1210 【样例输出】 The largest total wages are: lisi 930 1200 2130 The smallest to
时间: 2023-06-10 08:07:49 浏览: 131
这是一道关于结构体的 C 语言编程题,可以按照如下步骤实现:
1. 定义一个结构体类型,包含员工姓名、基本工资、奖金和总工资四个字段;
2. 在主函数中定义一个结构体数组,用来存储5个员工的信息;
3. 使用循环语句依次输入5个员工的信息,并计算出每个员工的总工资;
4. 计算出总工资数最大者和最小者,并输出他们的信息。
下面是一份可能的实现代码,供参考:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
struct Employee {
char name[MAX_NAME_LEN];
int base_salary;
int bonus;
int total_salary;
};
int main() {
struct Employee employees[5];
int i, max_idx = 0, min_idx = 0;
int max_salary = 0, min_salary = 0x7fffffff; // 设置初始值为最小的整数
// 输入员工信息,并计算总工资
for (i = 0; i < 5; i++) {
scanf("%s%d%d", employees[i].name, &employees[i].base_salary, &employees[i].bonus);
employees[i].total_salary = employees[i].base_salary + employees[i].bonus;
}
// 找出总工资最大和最小的员工
for (i = 0; i < 5; i++) {
if (employees[i].total_salary > max_salary) {
max_salary = employees[i].total_salary;
max_idx = i;
}
if (employees[i].total_salary < min_salary) {
min_salary = employees[i].total_salary;
min_idx = i;
}
}
// 输出结果
printf("The largest total wages are: %s %d %d %d\n",
employees[max_idx].name, employees[max_idx].base_salary,
employees[max_idx].bonus, employees[max_idx].total_salary);
printf("The smallest total wages are: %s %d %d %d\n",
employees[min_idx].name, employees[min_idx].base_salary,
employees[min_idx].bonus, employees[min_idx].total_salary);
return 0;
}
```
输入样例:
```
zhangsan 954 1000
lisi 930 1200
wangwu 920 1100
sunliu 900 1120
liuba 910 1210
```
输出样例:
```
The largest total wages are: lisi 930 1200 2130
The smallest total wages are: sunliu 900 1120 2020
```
阅读全文