7-2 计算职工工资 分数 10 作者 C课程组 单位 浙江大学 给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。
时间: 2023-12-03 09:42:51 浏览: 245
以下是一个可能的实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100
struct Employee {
char name[20];
int basic_salary;
int floating_salary;
int expenses;
};
int main() {
int n;
struct Employee employees[MAX_N];
// 读入职员信息
printf("请输入职员人数:");
scanf("%d", &n);
getchar(); // 读取换行符
for (int i = 0; i < n; i++) {
printf("请输入第%d个职员的姓名:", i + 1);
fgets(employees[i].name, sizeof(employees[i].name), stdin);
employees[i].name[strcspn(employees[i].name, "\n")] = '\0'; // 去掉换行符
printf("请输入第%d个职员的基本工资:", i + 1);
scanf("%d", &employees[i].basic_salary);
printf("请输入第%d个职员的浮动工资:", i + 1);
scanf("%d", &employees[i].floating_salary);
printf("请输入第%d个职员的支出:", i + 1);
scanf("%d", &employees[i].expenses);
getchar(); // 读取换行符
}
// 计算实发工资并输出
printf("各职员的实发工资如下:\n");
for (int i = 0; i < n; i++) {
int net_salary = employees[i].basic_salary + employees[i].floating_salary - employees[i].expenses;
printf("%s:%d\n", employees[i].name, net_salary);
}
return 0;
}
```
这个程序使用了一个结构体 `Employee` 来表示职员信息,其中包括姓名、基本工资、浮动工资和支出四个字段。首先读入职员信息,然后顺序计算每个职员的实发工资,并输出到屏幕上。值得注意的是,输入姓名时需要使用 `fgets()` 函数,并手动去掉最后的换行符。
阅读全文