|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
void splitdate(int year,int yearday,int *month,int *day);
int main()
{
const char daytab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int year,yearday,month,day;
scanf("%d%d",&year,&yearday);
void splitdate(int year,int yearday,&month,&day);
printf("%d %d",month,day);
}
void splitdate(int year,int yearday,int *month,int *day)
{
int k,leap;
const char daytab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
if(year % 4==0 && year % 100==!0||year % 400==0)
{
leap = 2;
}
else
{
leap = 1;
}
for (k=1;daytab[leap][k]<day;k++)
{
yearday-=daytab[leap][k];
}
*month = k;
*day = yearday;
}
问题:
给定一个年份y和整数d,问这一年的第d天是几月几日?
c语言
本帖最后由 jackz007 于 2021-3-11 19:08 编辑
- #include <stdio.h>
- void splitdate(int year , int yearday , int * month , int * day)
- {
- int d , m , leap ;
- const char daytab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
- {0,31,29,31,30,31,30,31,31,30,31,30,31}} ;
- leap = 0 ;
- if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ) leap ++ ;
- for(d = 0 , m = 1 ; m < 13 && d + daytab[leap][m] <= yearday ; d += daytab[leap][m] , m ++) ;
- * month = m ;
- * day = yearday - d ;
- }
- int main(void)
- {
- int year , yearday , month , day ;
- scanf("%d%d" , & year , & yearday) ;
- splitdate(year , yearday , & month , & day) ;
- printf("%d %d\n" , month , day) ;
- }
复制代码
编译、运行实况
- D:\0002.Exercise\C>g++ -o x x.c
- D:\0002.Exercise\C>x
- 2020 31
- 1 31
- D:\0002.Exercise\C>x
- 2020 366
- 12 31
- D:\0002.Exercise\C>x
- 2021 32
- 2 1
- D:\0002.Exercise\C>x
- 2021 365
- 12 31
- D:\0002.Exercise\C>
复制代码
|
|