2014-09-24 4 views
-2

"NewTemp"를 인쇄 할 때 32를 표시하는 프로그램 NewTemp = 32 + input * 180/100; 이 부분은 주요 문제처럼 보입니다C 프로그래밍 프로그램은 내 변수의 첫 번째 값만 인쇄합니다.

#include <stdio.h> 

float celsius(float input) { 
    float NewTemp; 
    **NewTemp = 32 + input * 180/100; 
    printf("Please enter the temperature value to convert to fahrenheit\n"); 
    scanf("%f", &input); 
    printf("The temperature in celsius is: %f\n", NewTemp); 

    return NewTemp; 

} 

int main(void){ 
float CelToFahren, input; 
    CelToFahren = celsius(input); 
} 
+1

C는 하나씩 차례로 실행됩니다. 'NewTemp'를 시작하는 라인은 공식을 정의하지 않습니다; 수식을 기반으로 값을 계산하는 단계를 수행합니다. (공식을 정의하는 언어는 일반적으로 "기능 언어"라고합니다.) –

+0

'NewTemp'는 float에 대한 포인터를 가리키는 포인터가 아니므로'** NewTemp'는 완전히 무의미합니다. – usr2564301

답변

1

입력을 읽기 전에 수학을 수행하십시오. 다른 방법으로해야합니다.

또한 의미가없고 초기화되지 않은 값을 celsius 함수에 전달할 이유가 없습니다.

마지막으로 180/100은 1 개의 나머지 80이므로 2 개의 정수를 나눌 때 정수 나누기를 얻게됩니다. 180.0/100.0을 사용할 수 있습니다.

기본적으로 C를 배워야합니다.

+2

'input'은 float이기 때문에 '180'은 괜찮습니다. –

+0

그렇지만 다음에 그는'32 + input * (180/100)'이라고 쓰고 그의 코드는 깨질 것입니다. –

+0

왜 나는 괄호가 코드를 깨뜨릴 수 있는지 깨달았지만, 여전히 "잃어버린 메신저"는 의미가없고 초기화되지 않은 값을 섭씨 함수에 전달할 필요가 없습니다. – Jude

관련 문제