【问题标题】:why does my netpay display no answer?为什么我的netpay 显示没有答案?
【发布时间】:2017-09-12 04:00:13
【问题描述】:

我正在编写工资单检查代码。一个函数询问用户工作时间和小时工资。另一个函数接受小时数和费率作为参数并计算并返回总工资。然后将 Grosspay 发送到一个函数,该函数将计算并返回 payrolltax(.22)。然后调用一个函数,该函数将接受 Grosspay 和 tax 作为参数并返回 netpay。最后将所有数据发送到将显示所有值(总小时数、小时工资率、总工资、税金和净工资)的函数。我的 netpay 显示我 0,而 tax 显示错误答案。谁能告诉我哪里出错了?

/* Payroll Check */
#include <stdio.h>

float askhoursworked();
float askhourlyrate();
float calculategrosspay(float hours,float rate);
float calculatepayrolltax(float grosspay);
float calculatenetpay(float grosspay,float tax);
float displayallvalues(float ,float ,float,float ,float );

int main()
{
      float hours;
      float rate;
      float grosspay;
      float tax;
      float netpay;
      float values;

      hours=askhoursworked();
      rate= askhourlyrate();

      tax=  calculatepayrolltax( grosspay);
      netpay= calculatenetpay( grosspay,tax);
      grosspay=calculategrosspay( hours,  rate);

      values= displayallvalues( hours, rate, tax, grosspay, netpay);

      return 0;
}


 float askhoursworked()
 { 
       float hours;
       printf("\n Please enter hours worked \t");
       scanf("%f",&hours);

       return hours;
 }

 float askhourlyrate()
 { 
    float rate;
    printf("\n Please enter your payrate \t");
    scanf("%f",&rate);

    return rate; 
 }

float calculategrosspay(float hours,float rate)
{
    float grosspay;
    grosspay=hours*rate;

    return grosspay;
}

float calculatenetpay(float grosspay,float tax)
{
    float netpay;
    netpay=grosspay-tax;

    return netpay;
}

float calculatepayrolltax(float grosspay)
{
    float tax;
    tax=grosspay*.22;

    return tax;
}

float displayallvalues(float hours,float rate,float tax,float grosspay,float netpay)
{
    printf("\n Your total hours are %.2f",hours);
    printf("\n Your hourly rate  %.2f",rate);
    printf("\n Your grosspay is %.2f",grosspay);
    printf("\n Your taxes are %.2f",hours);
    printf("\n Your netpay is %.2f",netpay);
}

【问题讨论】:

  • 格式不好 - 代码不易读取;(
  • 在收到告诉您问题所在的答案后,不要修改代码来修复错误。
  • 请注意,您声称displayallvalues() 将返回一个值,但事实并非如此。您永远不会使用将不存在的结果分配给的变量,但这并不能防止分配成为错误。该函数应定义为返回void,并且应删除values 变量。还要注意,函数askhoursworked() 应该用float askhoursworked(void) 声明(并且最好定义)——同样askhourlyrate()。就目前而言,这些函数有一个声明,但没有原型(C 不是 C++,规则不同)。

标签: c


【解决方案1】:

在 C 语言中,使用单遍编译器。这意味着在这里,顺序最重要。 你终于在计算总工资了。并且您正在使用它来计算 netpay 和税收。

这是正确的方法..

 hours = askhoursworked ();
 rate = askhourlyrate ();
 grosspay = calculategrosspay (hours, rate);
 tax = calculatepayrolltax (grosspay);
 netpay = calculatenetpay (grosspay, tax);

查看Online Compiler

编辑 您还以错误的方式打印了输出。

  printf ("\n Your total hours are %.2f", hours);
  printf ("\n Your hourly rate  %.2f", rate);
  printf ("\n Your grosspay is %.2f", grosspay);
  printf ("\n Your taxes are %.2f", tax);
  printf ("\n Your netpay is %.2f", netpay);

【讨论】:

  • 感谢您对我的看法我更改了我的代码。还有一个问题,您能否给我一个提示,为什么我的税额与我的总工作时间相同?
  • michaelj,我已经编辑了我的答案,我想你也忘记了。检查我上面的更新答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-18
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 2011-12-21
  • 1970-01-01
相关资源
最近更新 更多