2011-10-06 54 views
3

我是C新手,我在將美元轉換爲歐元的基本程序時遇到問題。當我打印最終輸出時,美元和歐元的金額均爲「0.00」。 這裏是我的代碼:C初學者,算術運算後浮點變量輸出爲「0.00」。

#include<stdio.h> 

main() 

{ 
    float usd = 0.00; 
    float euro = 0.00; 
    const float conversion = 0.75; 

    printf("Please enter the amount of USD you want to convert to Euros: "); 
    scanf("%f", &usd); 

    euro = (usd * conversion); 
    printf("\n%.2f USD equals %.2f Euros.", &usd, &euro); 


    getch(); 
    return 0; 
} 

在此先感謝

+1

我看到這個答案,但您可以通過爲您的編譯器啓用警告來防止這種情況發生。如果您使用的是gcc,請添加「-Wall」以啓用所有警告。它會告訴你什麼時候在printf和scanf字段中使用了錯誤的類型。 Visual Studio和其他人將具有相同的功能。 –

回答

6

更改printf行這樣的:

printf("\n%.2f USD equals %.2f Euros.", usd, euro); 

你傳入的usdeuro地址,而不是值本身。

+0

現在工作,謝謝你們兩位! – Petefic

-1

您不想在您的printf()函數中將'&'放在變量名稱的前面。這將返回變量的內存地址,而不是存儲在變量中的值。嘗試刪除它們,看看你是否得到你正在尋找的輸出。

+0

這隻適用於printf調用,他仍然需要&在scanf中。 – Adam

+0

哎呀,錯過了。將編輯答案。 – Sean

1
printf("\n%.2f USD equals %.2f Euros.", usd, euro);