九度题目1186

本文深入探讨了一段用于计算日期在一年中的位置的C语言代码。通过详细解释`run`宏和`dofm`数组的作用,文章揭示了如何在不同年份中准确找出给定天数对应的日期。此外,文章指出在输出格式中忽略年份前的'0'是错误的做法,并强调了正确使用格式化字符串的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
#define run(x) x%100!=0&&x%4==0||x%400==0?1:0
int dofm[13][2]={
     0,0,
31,31,28,29,31,31,30,30,
31,31,30,30,31,31,31,31,
     30,30,31,31,30,30,31,31,
};

int main(){
 int y,m,d,n;//n是所给的一年中的第几天
 while(scanf("%d %d",&y,&n)!=EOF){
      m=0;
 while(n>0){
      m++;
  n=n-dofm[m][run(y)];   
 }
 d=dofm[m][run(y)]+n;
 printf("%04d-%02d-%02d\n",y,m,d);
 
 }
 return 0;

}

所犯错误:

要严格注意格式,输出格式,年份的地方想当然的省了0,是错误的,应该是%04d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值