问题描述
给定 N 个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输 出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。
输入格式
输入在一行中给出正整数 N。随后 N 行,每行给出一位职员的信息,格式为“姓名 基 本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于 10 的不包含空白字符 的非空字符串,其他输入、输出保证在单精度范围内。
输出格式
按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留 2 位小 数。
样例输入
3 zhao 240 400 75 qian 360 120 50 zhou 560 150 80
样例输出
zhao 565.00 qian 430.00 zhou 630.00
样例说明
计算三个人的实发工资并输出。 评测用例规模与约定 不超过 100 人,时间限制 1s,内存限制 256KB
#include <stdio.h>
struct Employee {//结构模板,标记为Employee
char name[10];
float basic_salary;
float bonus_salary;
float expenditure;
};
int main() {
int N;
scanf("%d", &N);
struct Employee employees[N];//创建结构数组,数组中的每一个元素是一个结构
//因此可以通过employee[i]+'.'运算符访问结构体中的数据
for (int i = 0; i < N; i++) {//读取数据
scanf("%s %f %f %f", employees[i].name, &employees[i].basic_salary, &employees[i].bonus_salary, &employees[i].expenditure);
}
for (int i = 0; i < N; i++) {//计算实际工资
float actual_salary = employees[i].basic_salary + employees[i].bonus_salary - employees[i].expenditure;
printf("%s %.2f\n", employees[i].name, actual_salary);
}
return 0;
}