2016-10-16 3 views
-3

내 CS 클래스에서 C++을 사용하여 문제를 일으키는 프로그래밍 할당을 수행하고 있습니다. 할당은 사용자에게 화씨 온도를 입력하도록 요청하는 프로그램을 작성하는 것입니다. 그런 다음 프로그램은 그 온도와 섭씨 온도를 같게하고 다음 20 화씨 온도의 섭씨 온도를 출력해야합니다. 이 작업은 변환 계산과 함수 프로토 타입을 완료하는 데 별도의 함수를 사용하여 수행해야합니다.C++에서 별도의 함수에서 값을 반환 하시겠습니까?

나는 섭씨 값을 모두 출력하는 것을 제외하고는 모든 것이 작동합니다. 오류를 발견하거나 잘못된 것을 파악할 수없는 것 같습니다 ... 도와주세요!

#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) 또는, 당신은 당신의 출력에 똑 바른 공을 받고되지 않습니다 이것

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

관련 문제