2013-08-20 144 views
-3

每天,氣象站會以華氏度表示5個溫度。編寫一個程序以華氏溫度接受溫度,將其轉換爲攝氏溫度並在屏幕上顯示轉換後的溫度。 5個溫度之後,消息「處理所有溫度」應顯示在屏幕將5華氏溫度從華氏溫度轉換爲攝氏溫度

我的回答是低於

#include <stdio.h> 
main() 
{ 
    int fah, cel; 
    printf("\nEnter 5 temperatures in Fahrenheit: "); 
    scanf("%d %d %d %d %d", &fah); 
    do 
    { 
    cel=(fah-32)*(5/9); 
    printf("\n These temperatures converted to Celsius are: %d \n", cel); 
    } 
    while(fah); 
} 
+0

我去哪裏錯了?你沒有準確地發佈你的問題是什麼? –

+0

你的問題到底是什麼? (除了無限循環) –

+0

那麼,該程序,除了越野車,並沒有做什麼要求。要求您在5個溫度後終止,而不是在零輸入之後終止,並且您被要求打印狀態消息。 –

回答

1

你在整數工作 - > 5/9被轉化從而爲整數0結果也將等於0.您需要使用float/double類型或更改計算以最小化此類舍入誤差,例如像這樣:cel=(5*(fah-32))/9; - 這裏的乘法先完成,然後再進行除法。

2
scanf("%d %d %d %d %d", &fah); 

您在轉換說明符中使用了5 %d,但只使用了一個變量。

cel=(fah-32)*(5/9); 

在這裏,你使用整數除法,改變變量的類型double5/95.0/9

+0

我可以得到直接的解決方案嗎?我完全搞砸了我知道,但我很困惑,我試過,也許如果你告訴我生病能夠理解 – gadoora

+0

@gadoora - 閱讀好的答案,並在其中工作。這是學習這些東西的唯一方法,誠實!提示 - 分解你的問題 - 先讓它處理一個值,然後考慮把它擴展到五個。 –

+0

@gadoora Martin的權利,你最好一步一步地嘗試。 –

2

讓一個採取這一個 -

  • scanf("%d %d %d %d %d", &fah);:要掃描5值,而您只使用一個%d。其他四個值呢?您應該使用5個值的數組。
  • cel=(fah-32)*(5/9);:你除以9,兩者都是整數。將整數除以另一個整數a/b的結果,其中a < b爲0.因此cel將始終爲0.您必須將其中一個整數轉換爲float/double。
  • 如果您使用數組,則需要遍歷數組的所有元素來處理它們。

我故意不提供所有這些的直接解決方案。我建議你看看這些東西並理解它們,因爲它們是用C語言編程的基礎。

相關問題