首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用的函数中的变量值不被更新。

调用的函数中的变量值不被更新。
EN

Stack Overflow用户
提问于 2022-11-12 19:58:56
回答 1查看 46关注 0票数 -1

我正在试图计算总工资和工资率,但是当调用函数时,似乎没有更新pay_rate函数中的时间,即- 40,然后是- 4。请支持我。这是我的密码。

代码语言:javascript
复制
#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;
  
}

我尝试了一个临时变量,但它也不起作用。

EN

回答 1

Stack Overflow用户

发布于 2022-11-12 20:08:05

如果希望在另一个函数中更新该值,则需要传递其地址。

代码语言:javascript
复制
#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;
  
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74416131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档