2013-02-06 43 views
0

我有以下程序:C:乘兩個ScanFs

#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等於工資*小時,這取決於我輸入的工資和小時數。任何人都可以提供關於如何去做這件事的提示嗎?謝謝!

+0

grossPay = wage * hours;在掃描變量之前,你正在這樣做。 –

+2

請學習如何編碼循環(i = 0; i SecurityMatt

回答

4

移動此行

grossPay = wage*hours; 

scanf ("%f",&hours); 

你應該嘗試的用戶輸入wage & hours後計算grossPay。默認情況下,在聲明wagehours期間將被初始化爲默認值,即0.0,因此您得到grossPay爲零。

0

在分配工資和工時的任何值之前,您正在分配毛支付工資&小時。在第一個for循環中的最後一個scanf之後執行。

0

提供信息之前,務必計算它,試試吧

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

grossPay = wage*hours; 

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

你也可以試試這個,比你不要求行「grossPay =工資*小時;」

printf(「%06i%.02f%.01f%f \ n \ n」,數字,工資,小時,工資*小時);

+0

然而,它提供了相同的功能,使其更難以閱讀/理解,所以我不會那樣做 –