7-10 计算工资

某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工为老职工,5年以下的为新职工。新职工的正常工资为30元/小时,老职工的正常工资为50元/小时。请按该计酬方式计算员工的工资。

输入格式:

输入在一行中给出2个正整数,分别为某员工入职年数和周工作时间,其间以空格分隔。

输出格式:

在一行输出该员工的周薪,精确到小数点后2位。

输入样例1:

5 40

输出样例1:

2000.00

输入样例2:

3 50

输出样例2:

1650.00

 代码展示:

#include<stdio.h>
int main()
{
	int career,weekworktime;
	double salary;
	scanf("%d%d",&career,&weekworktime);
	if(career<5)
	{
		if(weekworktime<=40)
		{
			salary=30*weekworktime;
		}
		else
		{
			salary=1200+30*(weekworktime-40)*1.5;
			
		}
	}
	else
	{
			if(weekworktime<=40)
		{
			salary=50*weekworktime;
		}
		else
		{
			salary=2000+50*(weekworktime-40)*1.5;
		}	
	}
	printf("%.2f\n",salary);
	return 0;
}

 

### 计算职工工资的方法 为了实现职工工资计算,可以创建一个函数专门用于处理这一逻辑。此函数会接收结构体变量作为参数,并根据给定的规则计算实发工资。 假设存在一个名为 `emploee` 的结构体,其中包含了职工的各种信息字段,如职工号、姓名、岗位工资、奖金、扣除项等,则可以通过以下方式定义并实现该功能: ```c #include <stdio.h> #include <string.h> // 定义员工结构体 struct emploee { char no[10]; // 职工编号 char name[20]; // 名字 int salary; // 基本工资 float bonus; // 奖金 float deduction; // 扣款 }; float calculateNetSalary(struct emploee e) { // 净收入等于基本工资加上奖金减去扣款 return e.salary + e.bonus - e.deduction; } ``` 当需要展示某位特定职工的具体薪资详情时,在查询到对应的数据后调用上述方法即可得到最终的结果[^1]。 对于整个系统的集成来说,可以在原有的基础上增加打印每位职工具体薪酬情况的部分,即在遍历文件中的每条记录的同时输出其净收入值: ```c printf("记录号 职工号 姓名 性别 年龄 工资 实发金额\n"); for (int i = 0; fread(&emp[i], sizeof(struct emploee), 1, fp) != 0; ++i){ printf("%6d %6s %-9s %-4s %5d %8.2f %.2f\n", i + 1, emp[i].no, emp[i].name, emp[i].sex, emp[i].age, emp[i].salary, calculateNetSalary(emp[i])); } ``` 通过这种方式仅能够完成对单个职工工资数额的求解工作,同时也使得整体程序更加模块化易于维护和发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值