作者qwe801031 (嗯哼)
看板C_and_CPP
標題[問題] 迴圈
時間Fri Nov 13 20:06:33 2009
1/2+2/3+...19/20=
我的寫法是這樣
{
int i;
int n=20;
int sum=0;
for(i=1;i<n;i++)
{
sum=sum+i/(i+1);
}
printf("%d",sum);
getch();
return 0;
}
可是跑出來結果都是0,請問是有哪邊寫錯了嗎..
--
我是住在語風的一個小小玩家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.76.5
1F:推 janice001:你用INT宣告...0.XXXX的部份會被截掉 11/13 20:09
2F:推 s80773:要用浮點數 11/13 20:10
3F:推 VictorTom:更關鍵的地方在, 整數/整數只會產生整數, 以原po的例子 11/13 20:14
4F:→ qwe801031:那該怎麼辦 囧 可是我記得我在學校這個好像可以用 11/13 20:15
5F:→ VictorTom:i或者(i+1)的地方都要加個轉型成浮點型態才行:) 11/13 20:15
6F:→ VictorTom:另外再把sum改成浮點型態, 應該就可以了.... 11/13 20:16
7F:→ topwing:改成浮點型態後記得print那邊也要改喔~ 11/13 20:21
8F:推 annie:改成浮點數之後 應該很快就會遇到truncation error的問題了 11/13 20:25
9F:→ MOONRAKER:你在學校可以 那是運氣好… 11/13 22:02
10F:→ ZMDYEMWP:不可能可以吧… 11/15 12:02