帮忙读下程序,谢

来源:百度知道 编辑:UC知道 时间:2024/06/25 22:16:44
if(a==7)
{for(i=1;i<=b;i++)
{printf("%4d",i);
if(i%7==0)
{printf("\n");
}
}
}
if(a!=7)
{while (j<=4*a)
{printf(" ");
j++;
}
for(i=1;i<=b;i++)
{printf("%4d",i);
if(i==7*k-a)
{printf("\n");
k++;
}

}
}
printf("\n");
}
这部分内容怎么也看不懂,不知道为什么这么算,谁能帮忙解读下,谢了
全部代码如下
#include <stdio.h>
int leap (int year)
{if(year%4==0&&year%100!=0||year%400==0) //判断是否是闰年
return 1;
else return 0;
}
int days_month (int month,int year) //判断大月和小月
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) //找出大月
return 31;
if(month==4||month==6||month==9||month==11) //找出小月
return 30;
if(month==2&&leap(year)==1) return 29; //判断二月是29天还是29天
else return 28;
}
int firstday(int month

if(a==7) //假如这个月的1号是星期日,就输出所有天
{for(i=1;i<=b;i++) //有几天走几次
{printf("%4d",i); //按指定长度输出
if(i%7==0) //到了星期日的时候换行
{printf("\n");
}
}
}
if(a!=7) //假如这个月的1号不是星期日(为了对其,就需要加空格了)
{while (j<=4*a) //1号前的每个格子是四个空格(因为上面限制了是数字的长度,加四个空格才会对齐)
{printf(" ");
j++;
}
for(i=1;i<=b;i++) //前面加完空格了,然后开始输出数字
{printf("%4d",i);
if(i==7*k-a) //这里就是为了对齐,不过我不喜欢这样的方法
{printf("\n"); //就是在星期日后面加空格嘛
k++;
}

}
}
printf("\n");
}

看着上面的代码觉得很别扭.