[問題] 迴圈卡住了!!!!!
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
以下程式碼是正確的!!
而輸出時 會顯示 所有2~10000中的質數 與 共有幾個
===================================
int main(int argc, char *argv[])
{
int i,a,b,c,n, pri=1, m=0;
for(n=2;n<10000;n++)
{
for(i=2; i<n; i++)
{
if(n%i==0)
{
pri = 0;
break;
}
}
if(pri==1)
{
m++;
printf("%d\t",n);
}
pri=1;
}
printf("\n共%d個質數\n",m);
=====================
我一直想嘗試 自己用手帶數字
但帶到n=4 就開始感覺怪怪? 我想應該是我的解讀錯誤 煩請幫忙~"~
=================(此為我解讀部份)
一開始n=2 又<10000 所以 進到第2個for
i=2 但是i不小於n 所以跳出
因為n++ 所以n=3 又<10000 進入第2個for
因為前一個 不成立 所以 i=2 i<n成立
又3%2=1 (3%2!=0) 所以跳到 if(pri= =1)
則m++
再來第3次=__=
因n++ 所以n=4 又<10000 進入第2個for
前一個成立 所以 i++ i=3 i<n成立
4%3=1 ....(但4不是質數...我這裡開始大卡)
煩請幫助!!!!! 感謝> <!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.68.164.61
→
04/19 22:12, , 1F
04/19 22:12, 1F
→
04/19 22:18, , 2F
04/19 22:18, 2F
邏輯部分卡住了.也許是內外迴圈不理解(?) (程式步驟 順序我不明白)
→ firejox:你的n是4 i是2的呢?
※ 編輯: super0517 來自: 203.68.164.61 (04/19 22:40)
這意思是...n=4時 i是從2開始 不是從3開始嗎?
(程式步驟 順序我不明白)
※ 編輯: super0517 來自: 203.68.164.61 (04/19 22:42)
→
04/19 22:43, , 3F
04/19 22:43, 3F
→
04/19 22:44, , 4F
04/19 22:44, 4F
→
04/19 22:45, , 5F
04/19 22:45, 5F
噢噢...我以為 n=4的時候 i就直接等於3了
(因為我以為n=3時i=2 之後就不用 用i=2)
所以當n=5時 分別會用 i=2 , i=3 , i=4 下去算@@?
若觀念還是錯誤 很不好意思> <
※ 編輯: super0517 來自: 203.68.164.61 (04/19 22:53)
→
04/19 22:48, , 6F
04/19 22:48, 6F
→
04/19 22:59, , 7F
04/19 22:59, 7F
恩!!! 了解了 謝謝兩位 麻煩你們了:)
※ 編輯: super0517 來自: 203.68.164.61 (04/19 23:12)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章