C:将两个ScanF相乘

时间:2013-02-06 05:02:43

标签: c

我有以下程序:

   #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目前为0。我希望grossPay等于工资*小时,这将取决于我输入的内容作为该时钟数的工资和小时数。任何人都可以提供如何解决这个问题的提示吗?谢谢!

4 个答案:

答案 0 :(得分:4)

移动此行

grossPay = wage*hours;

scanf ("%f",&hours);

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

答案 1 :(得分:0)

在将工资和工时的任何价值分配给工资和工时之前,您正在将工资总额分配给工资和小时。在第一个for循环中的最后一个scanf之后执行。

答案 2 :(得分:0)

你在提供信息之前计算它,所以试试吧

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

grossPay = wage*hours;

printf ("%06i     %.02f      %.01f   %f\n\n", number, wage, hours,grossPay);

答案 3 :(得分:0)

你也可以尝试这个,而不是你不需要行&#34; grossPay =工资*小时;&#34;

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