看板 C_and_CPP 關於我們 聯絡資訊
就是阿..我已經成功寫出萬年歷.. 可是我想要的排版是.. 1月 2月 3月 4月 這樣的排法.. int j, k; k=0; while ( k<12 ) { printf( "\n %d 月:\n ", k+1 ); printf( " Sun Mon Tue Wed Thu Fri Sat\n" ); num = month[k]; k++; j=first_day; while( j>0 ) { printf( "%4c", ' '); j--; } j=1; while ( j<=num ) { if ( ( j+first_day-1)%7==0 && j!=1 ) printf("\n"); printf( "%4d", j ); j++; } first_day = ( first_day+num )%7; printf( "\n" ); } system("pause"); } 這樣我該從哪邊修改阿~"~? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.53.143 ※ 編輯: gene07 來自: 61.229.53.143 (10/22 22:51)
VictorTom:簡單的說, 你要這樣做, 最簡單就是同時處理兩個月的資料 10/22 23:16
VictorTom:然後印完兩個月份的每一列再換下一列輸出. 10/22 23:16
VictorTom:或者如果環境允許用gotoxy()那也許簡單一點.... 10/22 23:18
VictorTom:暴力解法就是, 開一個char [80][25]的陣列, 把所有文字 10/22 23:19
VictorTom:在裡面印完然後再一次全寫上螢幕, 不限定console輸出的 10/22 23:19
VictorTom:話, 你的array還可以開得更大XD 10/22 23:20
gene07:看不懂= =" 10/22 23:30
gene07:什麼是一次同時處理2個月的資料.. 10/22 23:36
james732:你現在迴圈是一個月一個月處理 改成一次處理兩個月 10/22 23:37
james732:然後再把兩個月的資料印在同一行 10/22 23:37
gene07:我該如何下手...~"~ 10/22 23:50
VictorTom:好吧, 我還有個蠢方法可以用. 基本上要印一個月需要的 10/23 00:32
VictorTom:最大char行與列數你可以推算, 假設要char [M][N]的大小, 10/23 00:33
VictorTom:你就開char [12][M][N]來, 把每個月的結果用sprintf印 10/23 00:33
VictorTom:進個別的char [M][N]去; 12個月都印完了, 再從頭到尾去 10/23 00:34
VictorTom:印%s的char [0][M], "看怎麼空格", char [1][M], "\n"; 10/23 00:35
VictorTom:這樣子比一次處理兩個月容易做多了吧XD 10/23 00:35