0

我有以下程序:

   #include <stdio.h>

 int main (void)
{
int n, number, employeeNumber,counter;
float wage,hours,grossPay;
grossPay = wage*hours;

    for ( counter = 1; counter <=5; ++counter) {

    printf ("Enter Clock#:");
    scanf ("%i",&number);
    printf ("Enter Wage:");
    scanf ("%f",&wage);
    printf ("Enter Hours:");
    scanf ("%f",&hours);

    employeeNumber = 0;

    for ( n = 1; n <= number; ++n)
        employeeNumber +=n;

    printf ("--------------------------------\n");
    printf ("Clock#    Wage    Hours    Gross\n");
    printf ("--------------------------------\n");
    printf ("%06i     %.02f      %.01f   %f\n\n", number, wage, hours,grossPay);
    }
    return 0;        
    }

当我运行该程序时,grossPay 目前为零。我希望 GrossPay 等于工资*小时数,这取决于我输入的工资和小时数。任何人都可以提供有关如何解决此问题的提示吗?谢谢!

4

4 回答 4

4

移动这条线

grossPay = wage*hours;

scanf ("%f",&hours);

您应该尝试grossPay在用户输入wage&之后进行计算hours。默认情况下,在声明期间wagehours初始化为默认值,即0.0,因此您将得到grossPay零。

于 2013-02-06T05:05:11.823 回答
0

您甚至在为工资和工时分配任何价值之前,都将总工资分配给工资和工时。在第一个 for 循环内的最后一个 scanf 之后执行此操作。

于 2013-02-06T05:06:24.793 回答
0

您在提供信息之前正在计算它,所以尝试一下

printf ("--------------------------------\n");

grossPay = wage*hours;

printf ("%06i     %.02f      %.01f   %f\n\n", number, wage, hours,grossPay);
于 2013-02-06T05:06:35.043 回答
0

你也可以试试这个,而不是你不需要“grossPay =工资*小时;”这一行

printf ("%06i %.02f %.01f %f\n\n", 数字, 工资, 小时, 工资*小时);

于 2013-02-26T17:07:04.490 回答