某学校对教师每月工资的计算公式如下:固定工资+课时补贴。教授的固 定工资为 5000 元,每个课时补贴为 50 元,副教授的固定工资为 3000 元,每 个课时补贴为 30 元;讲师的固定工资为 2000 元,每个课时补贴为 20 元。编 写一个函数,要求可以计算各类教师的工资。
如果以下回答对您有所帮助,点击一下采纳该答案~谢谢
#include <stdio.h>
#define PROFESSOR_FIXED_SALARY 5000
#define ASSOCIATE_PROFESSOR_FIXED_SALARY 3000
#define LECTURER_FIXED_SALARY 2000
#define PROFESSOR_PER_HOUR_SUBSIDY 50
#define ASSOCIATE_PROFESSOR_PER_HOUR_SUBSIDY 30
#define LECTURER_PER_HOUR_SUBSIDY 20
float calculate_salary(char *title, int hours) {
float fixed_salary;
float per_hour_subsidy;
if (strcmp(title, "教授") == 0) {
fixed_salary = PROFESSOR_FIXED_SALARY;
per_hour_subsidy = PROFESSOR_PER_HOUR_SUBSIDY;
} else if (strcmp(title, "副教授") == 0) {
fixed_salary = ASSOCIATE_PROFESSOR_FIXED_SALARY;
per_hour_subsidy = ASSOCIATE_PROFESSOR_PER_HOUR_SUBSIDY;
} else if (strcmp(title, "讲师") == 0) {
fixed_salary = LECTURER_FIXED_SALARY;
per_hour_subsidy = LECTURER_PER_HOUR_SUBSIDY;
} else {
printf("不支持该职称\n");
return -1;
}
float total_salary = fixed_salary + hours * per_hour_subsidy;
return total_salary;
}
int main() {
// 计算教授每月上课 80 小时的工资
float professor_salary = calculate_salary("教授", 80);
printf("%.2f\n", professor_salary); // 输出 9000.00
// 计算副教授每月上课 60 小时的工资
float associate_professor_salary = calculate_salary("副教授", 60);
printf("%.2f\n", associate_professor_salary); // 输出 4800.00
// 计算讲师每月上课 100 小时的工资
float lecturer_salary = calculate_salary("讲师", 100);
printf("%.2f\n", lecturer_salary); // 输出 4000.00
return 0;
}
该代码使用了 #define
宏定义来定义教师各项工资标准,然后在计算工资的函数中,根据传入的职称进行条件分支,获取对应的固定工资和课时补贴,最后计算总工资并返回。在 main()
函数中,我们调用 calculate_salary()
函数来分别计算教授、副教授和讲师的工资,并输出结果。