[問題] 這是靈異現象嗎@@?

看板C_and_CPP (C/C++)作者 (阿暐)時間16年前 (2010/05/20 01:51), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) int k=1; for(int i=1;i<=NumberOfData;i++){ formula1(Data[i],SubInd[k]);IndexOfSub[k][1]=i;IndexOfSub[k][2]=1;cout<<k;k++; formula2(Data[i],SubInd[k]);IndexOfSub[k][1]=i;IndexOfSub[k][2]=2;cout<<k;k++; formula3(Data[i],SubInd[k]);IndexOfSub[k][1]=i;IndexOfSub[k][2]=3;cout<<k;k++; formula4(Data[i],SubInd[k]);IndexOfSub[k][1]=i;IndexOfSub[k][2]=4;cout<<k;k++; formula5(Data[i],SubInd[k]);IndexOfSub[k][1]=i;IndexOfSub[k][2]=5;cout<<k;k++; if(i==0)i=4; } cout<<"::"<<k; system("pause"); 我寫了這個迴圈 可是如果不加最後一行if(i==0)i=4; 這個迴圈就會變成無限輪迴 更詭異的是k印出來會是123456789101112131415161718190 ^---他不是該是二十一的嗎@@ 這沒道理阿~"~ 希望得到的正確結果: 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Visual C++2008 Exress Edition 有問題的code: (請善用置底文標色功能) 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.80.84 ※ 編輯: gg01 來自: 220.136.80.84 (05/20 01:57)

05/20 02:41, , 1F
不呼叫 formula 也是一樣嗎?
05/20 02:41, 1F

05/20 02:45, , 2F
會不會是NumberOfData型別是 unsigned ?
05/20 02:45, 2F

05/20 02:45, , 3F
那麼在不同型別之間進行比較 確實有可能會跑不完
05/20 02:45, 3F

05/20 02:49, , 4F
我比較好奇怎麼發現加if(i==0)i=4;可以跳出來?
05/20 02:49, 4F

05/20 07:38, , 5F
可能像二樓說的非負整數, 也有可能是陣列存取違規
05/20 07:38, 5F

05/22 01:13, , 6F
這種問題正好練習trace,VC2008的trace/watch頗強大的
05/22 01:13, 6F
文章代碼(AID): #1Bz2KpYh (C_and_CPP)
文章代碼(AID): #1Bz2KpYh (C_and_CPP)