我正在试图计算总工资和工资率,但是当调用函数时,似乎没有更新pay_rate函数中的时间,即- 40,然后是- 4。请支持我。这是我的密码。
#include <iostream>
void pay_rate(float, float*);
void total_pay(float, float, float*);
int main() {
float h, rate, total_salary = 0;
printf("Input worked hours: ");
scanf("%f", &h);
pay_rate(h, &rate);
// printf("%f", rate);
total_pay(h ,rate,&total_salary);
// printf("\n%f", total_salary);
}
void pay_rate(float hour, float* rate) {
float temp = 0;
if (0 < hour && hour <= 40)
{
temp = hour-40;
*rate = 12.5;
printf("\n%f", temp);
} else if (0 < temp && temp <= 4) {
*rate = 15;
temp = temp-4;
printf("\n%f", temp);
} else if (temp > 0) {
*rate = 20;
printf("\n%f",temp);
}
}
void total_pay(float hours, float rate, float* salary){
*salary = rate * hours;
}我尝试了一个临时变量,但它也不起作用。
发布于 2022-11-12 20:08:05
如果希望在另一个函数中更新该值,则需要传递其地址。
#include <iostream>
void pay_rate(float*, float*);
void total_pay(float, float, float*);
int main() {
float h, rate, total_salary = 0;
printf("Input worked hours: ");
scanf("%f", &h);
pay_rate(&h, &rate);
// printf("%f", rate);
total_pay(h ,rate,&total_salary);
// printf("\n%f", total_salary);
}
void pay_rate(float* hour, float* rate) {
float temp = *hour;
if (0 < *hour && *hour <= 40)
{
temp = (*hour)-40;
*rate = 12.5;
printf("\n%f", temp);
} else if (0 < temp && temp <= 4) {
*rate = 15;
temp = temp-4;
printf("\n%f", temp);
} else if (temp > 0) {
*rate = 20;
printf("\n%f",temp);
}
*hour = temp;
}
void total_pay(float hours, float rate, float* salary){
*salary = rate * hours;
}https://stackoverflow.com/questions/74416131
复制相似问题