我写了个简单的万年历,即输入一个年份,就打印出来,一屏3个月,一共4屏。
但是下面有段代码没作用,让他空格
( if(g==6)
printf(“\n”);
else
{
for(k=0;k<(g+1)*8;k++)
printf(” “);
)
就是这段~~,没有打印出空格,每月1号都成星期日,都请教是什么问题。
小部分程序:
———————————————————— ———————
for(iMonth=1;iMonth<=12;iMonth++)
{
if (iMonth==4 || iMonth==7 || iMonth==10)
/* 当第3个月打印结束,第4个月开始时停顿并清屏 */
{
getch();
clrscr();
}
printf(“\n—————————-%s——————– ————\n\n”,month_name[iMonth-1]);
/* month_name 初始化为12个月的英语 */
printf(“Sun Mon Tue Wed Thu Fri Sat\n”);
switch(iMonth)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if((iDate+2*iMonth+3*(iMonth+1)/5+iYear+iYear/4-iYear/100+iY ear/400)%7==g)
{
if(g==6)
printf(“\n”);
else
{
for(k=0;k<(g+1)*8;k++)
printf(” “);
}
}
for(j=1;j<=31;j++)
printf(“%2d “,j);
break;
>> 本文固定链接: http://www.vcgood.com/archives/882
我知道哪里有问题了,犯了一个低级的逻辑错误。
我是新手,多多见谅
….
这次真的有问题了,里面我所需要的空格和换行命令都不执行,
没有打印出空格,每月1号都成星期日,并且都是到10号才换行。
请教这是什么问题。
for(imonth=1;imonth<=12;imonth++)
{
if (imonth==4 || imonth==7 || imonth==10)
/* 当第3个月打印结束,第4个月开始时停顿并清屏 */
{
getch();
clrscr();
}
printf(“\n—————————-%s——————– ————\n\n”,month_name[imonth-1]);
/* month_name 初始化为12个月的英语 */
printf(“sun mon tue wed thu fri sat\n”);
switch(imonth)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if((idate+2*imonth+3*(imonth+1)/5+iyear+iyear/4-iyear/100+iy ear/400)%7==g)
/* g=0,1月1号是星期1;g=1,1月1号是星期2…… */
if(g!=6)
for(k=0;k<(g+1)*8;k++)
printf(” “);
for(j=1;j<=31;j++)
{
if(j==7-g || j==14-g || j==21-g || j==28-g || j==35-g)
/* 当是星期天时就先换行 */
printf(“\n”);
printf(“%2d “,j);
}
break;
还是自己搞定了,不用研究 了,我自己写的有点乱了