作者gene07 (不要迷戀哥,哥只是個傳說)
看板C_and_CPP
標題[問題] 萬年歷排版...
時間Thu Oct 22 22:47:42 2009
就是阿..我已經成功寫出萬年歷..
可是我想要的排版是..
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)
1F:推 VictorTom:簡單的說, 你要這樣做, 最簡單就是同時處理兩個月的資料 10/22 23:16
2F:→ VictorTom:然後印完兩個月份的每一列再換下一列輸出. 10/22 23:16
3F:→ VictorTom:或者如果環境允許用gotoxy()那也許簡單一點.... 10/22 23:18
4F:→ VictorTom:暴力解法就是, 開一個char [80][25]的陣列, 把所有文字 10/22 23:19
5F:→ VictorTom:在裡面印完然後再一次全寫上螢幕, 不限定console輸出的 10/22 23:19
6F:→ VictorTom:話, 你的array還可以開得更大XD 10/22 23:20
7F:→ gene07:看不懂= =" 10/22 23:30
8F:→ gene07:什麼是一次同時處理2個月的資料.. 10/22 23:36
9F:→ james732:你現在迴圈是一個月一個月處理 改成一次處理兩個月 10/22 23:37
10F:→ james732:然後再把兩個月的資料印在同一行 10/22 23:37
11F:→ gene07:我該如何下手...~"~ 10/22 23:50
12F:→ VictorTom:好吧, 我還有個蠢方法可以用. 基本上要印一個月需要的 10/23 00:32
13F:→ VictorTom:最大char行與列數你可以推算, 假設要char [M][N]的大小, 10/23 00:33
14F:→ VictorTom:你就開char [12][M][N]來, 把每個月的結果用sprintf印 10/23 00:33
15F:→ VictorTom:進個別的char [M][N]去; 12個月都印完了, 再從頭到尾去 10/23 00:34
16F:→ VictorTom:印%s的char [0][M], "看怎麼空格", char [1][M], "\n"; 10/23 00:35
17F:→ VictorTom:這樣子比一次處理兩個月容易做多了吧XD 10/23 00:35