我有以下程序:
#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等于工资*小时,这将取决于我输入的内容作为该时钟数的工资和小时数。任何人都可以提供如何解决这个问题的提示吗?谢谢!
答案 0 :(得分:4)
移动此行
grossPay = wage*hours;
后
scanf ("%f",&hours);
您应该在用户输入grossPay
&amp;之后尝试计算wage
hours
。默认情况下,声明wage
和hours
将初始化为默认值,即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;,数字,工资,工时,工资*小时);