bcdhx 2017-11-26 14:39 采纳率: 100%
浏览 724
已结题

小白用C打印遇到排版问题,望各位大佬指点一下

#include
int weekday(int y,int m,int days)
{
int temp,i;
for(i=1;i<m;i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
days+=31;
else if(i==2)
{
if(pryear(y)==1)
days+=29;
else
days+=28;
}
else
days+=30;
}

temp=y-1+(int)((y-1)/4)-(int)((y-1)/100)+(int)((y-1)/400)+days;
return temp%7;

}
int pryear(int y)
{
if((y%4==0&&y%100!=0)||(y%100==0&&y%400==0))
return 1;
else
return 0;
}
int main()
{
int y,m;
printf("输入年-月\n");
scanf("%d-%d",&y,&m);
printf(" %d年%d月\n",y,m);
printf("星期日 星期一 星期二 星期三 星期四 星期五 星期六\n");
int week;
week=weekday(y,m,1);
int i;
for(i=0;i<week;i++)
printf(" ");
int enddayofmonth;
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
enddayofmonth=31;
else if(m==2)
{
if(pryear(y)==1)
enddayofmonth=29;
else
enddayofmonth=28;
}
else
enddayofmonth=30;
int startdayofmonth=1;
while(startdayofmonth<=enddayofmonth)
{
printf("%3d",startdayofmonth);
startdayofmonth++;
if((startdayofmonth+week-1)%7==0)
printf("\n");
}
return 0;
}
图片说明

  • 写回答

2条回答 默认 最新

  • threenewbee 2017-11-26 14:49
    关注

    printf("%3d",startdayofmonth);
    这个不够
    星期X,这个有3个中文,相当于6个字符,加上边界

    printf("%7d",startdayofmonth);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?