作者sjgau (sjgau)
看板C_and_CPP
標題Re: [問題] i+1 和 i++ 不是一樣嗎?
時間Fri Aug 21 09:41:35 2009
建議原 po 從下面這個求總和的程式下手
sum= 1 + 2 + . . . + no= ?
然後,一定要加上 後面驗算的程序,
xsum= (上底 + 下底) * (高) / 2
高,就是 項數。
然後,更改
i++
變成
i+1
看看,答案是否會相同?
// file: get-sum.cpp
#include <stdio.h>
#include <process.h>
int main()
{
int no, sum, i;
no= 100;
sum= 0;
for (i=1;i<=no;i++) {
sum+= i;
}
printf("\n\n no= %d, sum= %d\n", no, sum);
system("pause");
// ------------------------------------------
// get real sum of no
double xsum;
xsum= (1.0 + no)*(no - 1.0 + 1.0)/2.0;
printf("\n\n no= %d, xsum= %.3lf\n", no, xsum);
system("pause");
return(0);
}
※ 引述《Euler (http://0rz.tw/bd3Jx )》之銘言:
: http://nopaste.info/79f8614fc1.html
: 這是我寫的程式
: for迴圈裏面
: i+1 和 i++兩個結果不一樣耶
: 而且我也不懂為什麼i++並不是我要的結果
: 請問我的盲點在哪裡呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.245.110.241
1F:→ sjgau:然後,把 no --> 改成 100萬,看看答案會如何?Why? 08/21 12:50
2F:→ sjgau:把 no --> 改成 20億,除了看答案之外,再看看時間? 08/21 15:49
3F:→ sjgau:把 no 改成 200億,看看計算時間是否為10倍?Why not? 08/21 15:51