推 shesee:正解!我思考太不周密了...= = 感謝~ 08/25 06:15
※ 引述《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)