2016-12-09 7 views
-2
#include <stdio.h> 

//function prototypes 
const double fiveNinths = 5/9; 

int toCelsius(double value) 
{ 
    return ((value - 32) * (fiveNinths)); 
} 

int toFarenheit(double value) 
{ 
    return (value * 1.8) + 32; 
} 


int main (void) 
{ 
    int intValue, menuSelect; 
    double results; 
    intValue = 1; 

    while (intValue > 0) 
    { 
     printf("enter a positive integer: \n"); 
     scanf("%d", &intValue); 

     if (intValue > 0) 
     { 
      printf("Enter 1 to convert to Farenheit, enter 2 to convert to Celsius: \n"); 
      scanf("%d", &menuSelect); 

      if (menuSelect == 1) 
      { 
       results = toFarenheit(intValue); 
       printf("%d degrees to Farenheit is %d\n", intValue, results); 
      } 
      else if (menuSelect == 2) 
      { 
       results = toCelsius(intValue); 
       printf("%d degrees to Celsius is %d\n", intValue, results); 

      } 
      else 
      { 
       printf("invalid menu item, please input only 1 or 2\n"); 
      } 
     } 
    } 

    return 0; 
} 

toCelsiusの値が常に0を返す理由がわかりません。私のtoFarenheit関数はうまく動作します。また、このプログラムは、ユーザーに負の整数値を入力させることによって終了します。それは宿題の一部です。その部分を無視してください。私の関数は、実際に計算された戻り値の代わりに0を返し続けますか?

+0

[mcve]の提供方法を​​お読みください。あなたの質問には、あなたの主張をサポートするための入力/出力値がありません。 – user694733

+0

コードを正しくフォーマットしてください。 –

+2

ヒント:Cで5/9とは何ですか? –

答えて

-1

あなたの関数の宣言では、int toCelsius(double value)と書かれていますが、あなたのメインの関数はresults = toCelsius(intValue);で開きます。計算オペレーションは整数と共に使用され、5/9は0として表示され、常に戻り値も0になります。あなたは0と異なる値が得られるかどうかを確かめるために、ちょうど1で5/9を交換してみてください。この場合、エラーが見つかりました。

+0

これはPythonではなく、関数内の型はあなたが何を呼び出すかによって変化しません。 – Quentin

+0

真実@quentinこれは問題がどこから来たのかというと、あなたが正しく赤であれば私の記事で述べたとおりです。 – Sham3r

+0

あなたは答えに近づきました: '5/9'は' 5'と '9'の両方が' int'なので整数除算です。しかし、それはあなたが関数に渡す議論のタイプとは関係がありません。 – Quentin

0

を使用して試してみてください。この線で

const double fiveNinths = 5.0/9.0; 
double toCelsius(double value) { 
    return ((value - 32.0) * (fiveNinths)); 
} 

double results = toCelsius(double value)を、この方法は、double値、ないineger値を返す必要があります。

9または5を実際に使用すると、実際には整数除算が行われるため、整数値0も右のdouble値も返しません。

関連する問題