看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《shesee (秘密)》之銘言: : 程式跑出來的錯誤結果: : 一個一個迴圈慢慢試的結果是 : 如果不管最外面一層可以跑出a的部分,但其它會空白, : 這是想像中的狀況。 : ......然而加上了外面一層迴圈就會印出一片空白 因為你最外層的執行判斷是 ((j+1)%6) == 0 一上來 j = 0, 這個式子得到 false, 所以迴圈就結束了... ( ′-`)y-~ : //印出轉置二維陣列 : for(n = 0; ((j+1)%6) == 0 ; n++) : { : for(i = 0 ; i < count ; i++ ) : { : for( j = (6*n) ; ((j < size_t[i]) && (((j+1)%6) != 0)); j++) : { : f_out << csv_data[i][j] << ","; : } : f_out << endl; : } : } 改成 != 的話就會印出東西, 順序也正確, 但印不完全部只會有第一段 因為最裡面的迴圈跳出來的時候 ((j+1)%6) != 0 也就成立 所以第二層的後面要加一個 j = 6 * n 之類的把 j 值還原 可是這樣你就會跳不出去最外面那層 所以要加一個判斷, 如果 j 已經大於最大可能行長要跳出最外面的迴圈 所以...最外面的執行判斷改成像 for (n = 0; n < count; n++) 比較直接 -- 「我最想要的同伴嘛,首先是要笑口常開,其次是我們能永遠不會發生誤會。 如果這些都能辦到的話,嗯,如果他是世界上第一流的橋手,也還不錯。」 -- 班尼多‧加羅素,前義大利藍隊成員 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146 ※ 編輯: uranusjr 來自: 114.32.81.146 (08/25 02:25)
shesee:正解!我思考太不周密了...= =  感謝~ 08/25 06:15