【发布时间】:2020-02-03 18:14:33
【问题描述】:
编写一个程序,询问员工的薪水和服务年限。编写一个函数,根据服务年限改变薪水。如果员工的服务年限超过 10 年。他或她将获得 10% 的加薪。在 5 到 10 年之间,加薪为 5%。其他所有人都将获得 2% 的加薪。 Int calcbonus (int years_service); 该函数计算并返回员工当年的奖金。员工每服务 2 年将获得 500 美元。 无效打印计算(int years_service,浮动薪水,int奖金); 此功能将以清晰专业的方式显示所有计算出的信息。
#include <stdio.h>
#include <conio.h>
float funsalary(float salary,float year);
float calcbonus(float year);
void printcalculation (float year,float salary,float bonus);
int main()
{
float year,salary,bon;
printf("Enter your salary");
scanf("%f",&salary);
printf("Enter your years of service");
scanf("%f",&year);
funsalary(salary,year);
bon = calcbonus(year);
printcalculation(year,salary,bon);
}
float funsalary(float salary,float year)
{
float raise;
if (year>10)
{
raise = salary*10/100;
}
else if (year>=5 && year<=10)
{
raise = salary*5/100;
}
else if (year<=2)
{
raise = salary*2/100;
}
return raise;
}
float calcbonus(float year)
{
float bonus;
bonus = (year/2)*500;
return bonus;
}
void printcalculation(float year,float raise,float bon)
{
float extra,total;
total = raise+bon;
printf("Total Income Is %f\n",total);
}
我输入工资1000,工龄2,输出应该大于1500吧?但它显示的是 1500。
【问题讨论】:
-
还没有剖析整个事情,但是您忽略了来自
funsalary的返回值,然后您将salary传递给printcalculation,它期望raise。我希望问题出在某个地方。 -
顺便说一下,在这里粘贴代码时最好使用空格,而不是制表符。另请参阅我的编辑以了解格式化代码的正确方法。您突出显示它并单击
{}按钮。 -
一个问题:加薪是累计的吗?
标签: c