2016-10-16 6 views
-3

私は問題を与えているC++を使って私のCSクラスのプログラミング割り当てをしています。割り当ては、ユーザに華氏温度を入力するように促すプログラムを書くことである。プログラムは、その温度と摂氏相当の摂氏とそれに相当する摂氏20度の摂氏温度を出力する必要があります。これは、変換計算と関数プロトタイプを完成させるために別個の関数を使用して行う必要があります。C++の別の関数から値を返しますか?

私の摂氏以外のすべての出力は0になっていますが、何か間違いを見つけたり、間違っているように見えることはありません。

#include <iostream> 
#include <iomanip> 

using namespace std; 

double Celsius(double temp); 

int main() { 

double fTemp, cTemp; 

cout << "Please input a temperature in degrees Fahrenheit: "; 
cin >> fTemp; 

cout << "F Temp" << "  " << "C Temp"<< endl; 
cout << "-------------------" << endl; 

for(int count=1; count<= 20; count++){ 

    cTemp = Celsius(fTemp); 

    cout << setw(6) << fTemp << setw(12) << cTemp<< endl; 

    fTemp++; 

} 


return 0; 
} 

//*************Celsius Function****************// 

double Celsius(double temp){ 

double newC; 
newC = (temp-32) * (5/9); 
return newC; 

} 
//************************************************ 
+2

5を9で割った値が0であることを知り驚くでしょうか?それは整数除算を使うときに起こります。 –

答えて

0

(5/9)は、整数 - 整数除算です。そこには0もタイプしているかもしれません。それを(5.0/9.0)と交換してください。

+0

それは私のところでは間違ったミスでした。お手伝いありがとう!!! – ljjandre

0

一つは単純にしてみてください(5.0/9.0)または、あなたはあなたの出力にまっすぐに0を得ることはありません。これにより

double Celsius(double temp){ 
    double newC; 
    newC = (temp-32) * (float)5/9; 
    return newC; 
} 

ような何かを行うことによって、キャストタイプを使用することができます。

+0

'(float)(5/9)'は '0'です。最初に整数除算を行い、その結果をfloatにキャストします。 – esam

+0

申し訳ありませんが、最初に分子を型キャストすることを意味しました。 '(float)5/9' ありがとうございました – Pragun

関連する問題