2016-12-12 1 views
-2

のエラーが見つかりません。k = 0になります。それはk = 0.8ではないはずですか? コードに何が問題なのですか?このコードをコンパイルした後に、

#include <stdio.h> 
#include <math.h> 
void main() 
{ 
    int x=8; 
    int y=10; 
    int m=6; 
    float k; 
    k=x/y; 
    printf("k=%f",k); 
} 
+5

int/int = int。 –

+0

あなたのコードを浮動小数点から整数に暗黙的に変換するので、それを修正します: 'k =(float)x /(float)y; printf( "k =%g"、k); ' – Raindrop7

答えて

1

型鋳造がより便利かつ簡単であろうが。

int x=8; 
    int y=10; 
    int m=6; 
    float k; 
    k=(float)x/y; 
    printf("k=%f",k); 
2

もしfloatに除算の結果を代入しているが、これ自体は整数で計算されます。これは、両方のオペランドがタイプintであるためです。

この問題を固定する複数の方法がある - 例えば、kに配当を割り当て、そして次に除数で割って、このような:

int x=8; 
int y=10; 
int m=6; 
float k = x; 
k /= y; 
printf("k=%f",k); 
関連する問題