定义员工信息的结构体,包括姓名、工龄和工资3个部分。输入10个员工的信息,实现给每个员工的工资普涨一级工资(一级为20元),然后判断是否有员工的工龄达到10年以上,如果有,再给这些工龄达到10年以上的员工工资再加20元,求涨工资后所有员工工资的总和是多少,并将结果输出。
时间: 2024-02-21 09:58:09 浏览: 96
好的,这是一个C语言的问题,下面是解决方案:
```c
#include <stdio.h>
#define LEVEL_UP 20 // 一级工资涨幅
#define SENIOR_AGE 10 // 工龄达到10年以上的年龄
struct Employee {
char name[20];
int workAge;
float salary;
};
int main() {
struct Employee employees[10]; // 定义员工数组
float totalSalary = 0; // 所有员工工资的总和
// 输入员工信息
for (int i = 0; i < 10; i++) {
printf("请输入第%d个员工的姓名、工龄和工资:\n", i + 1);
scanf("%s %d %f", employees[i].name, &employees[i].workAge, &employees[i].salary);
employees[i].salary += LEVEL_UP; // 给每个员工的工资涨一级工资
if (employees[i].workAge >= SENIOR_AGE) {
employees[i].salary += LEVEL_UP; // 工龄达到10年以上的员工再加20元
}
totalSalary += employees[i].salary; // 计算总工资
}
// 输出员工信息和涨工资后的工资
printf("\n所有员工的工资情况如下:\n");
for (int i = 0; i < 10; i++) {
printf("姓名:%s,工龄:%d年,工资:%.2f元。\n", employees[i].name, employees[i].workAge, employees[i].salary);
}
// 输出总工资
printf("\n所有员工的工资总和为:%.2f元。\n", totalSalary);
return 0;
}
```
上面的代码中,我们定义了一个结构体 `Employee`,它包括了员工的姓名、工龄和工资三个部分。然后我们定义了一个数组 `employees`,用来存储输入的10个员工的信息。接着,我们遍历这个数组,给每个员工的工资普涨一级工资,并判断是否有员工的工龄达到10年以上,如果有,再给这些工龄达到10年以上的员工工资再加20元。最后,我们计算所有员工的工资总和,并输出每个员工的信息和总工资。
注意:这里使用了 `scanf` 函数来输入员工信息,从键盘读入的字符串应该用 `%s` 格式化,而不是 `%c`。同时,在 `printf` 中,输出浮点数应该用 `%f` 格式化,并且可以用 `%.2f` 表示保留两位小数。
阅读全文