2016-11-10 9 views
-2

を表示します。私はまだ自分のコードの解決策を見つけることができませんでした。C - すべての答えを探した後に浮動小数点変数

変数はINT型である必要がありますが、あるケースでは10進法の解を出力する必要があります。私はキャストしようとしましたが、まだdidint仕事。

#include<stdio.h> 

int main() 
{ 
    int sum = 6; 
    int product = 24; 
    int differenz, result, division, rest, decimal; 

    differenz = ++product - sum++; 
    result = differenz * sum; 
    division = result/9; 
    rest = result % 9; 
    decimal = result/9.0; 

    printf("Result = %d\n", result); 
    printf("Integer division = %d\n", division); 
    printf("Remainder = %d\n", rest); 
    printf("Division = %.2f\n", (float) decimal); 


    return 0; 
} 

出力:

Result = 133 

Integer division = 14 

Remainder = 7 

Division = 14.00 <-- Here I am supposed to print 14.76 

私も試してみました:

float b = (float) decimal; 
printf("Division = %.2f\n", b); 

それでも課= 14.00

どれ先端が理解されるであろう。 ありがとうございます!

+4

"変数はINT型でなければなりません"というように浮動小数点数として宣言する必要があります。さて、あなたはホースを締めています。 intはfloat値を格納できません。 – itsme86

+2

ここで 'division = result/9;'は整数除算であるため、結果も整数になります。 '変数はINT型である必要がありますが、あるケースでは10進法の解を出力する必要があります.'これはint変数では不可能です。 'int'がfloatを表すことができるならば、浮動小数点はまったく必要ありません。 –

+1

整数だけを使用して小数値を表示する場合は、スケーリングを導入する必要があります。 –

答えて

1

これは、変数decimalをintとして作成し、それを浮動小数点として印刷しようとしているためです。

変数を浮動小数点として作成するか、intとして出力しますが、両方を混在させることはできません。

また、intをfloatにキャストすると ".00"が追加されますが、それを変更することはできません。

+0

それは私の質問に答える。私はフロートに行くでしょう。私たちは何が起こるか見るでしょう。 –

0

変数「decimal」は、整数として宣言されている場合、除算の結果を正しく表すことができません。

int main() 
{ 
    ... 
    int differenz, result, division, rest; 
    float decimal; 
    ... 
    printf("Division = %.2f\n", decimal); 
    return 0; 
} 
+0

キャスティングが助けになると思いました。タスクでは、INT変数を使用するように要求されるためです。私はフロートに行かなければならないように見えます。 –

関連する問題