2016-12-12 72 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);