作者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