2015-10-26 62 views
-1
#include <stdio.h> 


int main() 
{ 
int x; 
float f1[11], f2[11], s; 

for (x = 1; x <= 10; x++) 
{ 
    f1[x] = (x * x)/4; 
    printf("f1(%d)=%.2f\n", x, f1[x]); 

} 

return 0; 
} 

F1 =(X^2)/ 4數據類型,數據丟失

電流輸出是:

F1(1)= 0.00

F1(2)= 1.00

F1(3)= 2.00 //等

我有點希望這些小數雖然。

F1(1)= 0.25

F1(2)= 1.00

F1(3)= 2.25

+1

或'1.0 * x * x/4'。 –

+0

@juanchopanza這不是一個好的重複,因爲它將結果存儲在一個int變量中。 – Barmar

回答

1

你用一個值做什麼並不影響它是如何計算的。因此,將一些數學結果存儲在double中的事實不會改變您正在執行整數運算的事實。

有很多修復程序,但最簡單的可能是(1.0 * x * x)/4.0

+0

'x/4. * x'可以說更簡單:操作更少,儘管難度更大。 – chqrlie