第1个回答 2020-11-13
在这里我教大家C语言中使用代码实现“输入年月日,判断这一天是一年的第几天”
开启分步阅读模式
工具材料:
VC++
T C
操作方法
01
定义年月日和其他变量
int day,month,year,sum,leap;
02
输出:please input year,month,day;告诉用户输入年月日
printf("\nplease input year,month,day\n");
03
获取键盘输入的字符,用十进制定义
scanf("%d,%d,%d",&year,&month,&day);
04
计算某月以前月份的总天数
switch(month){ case 1:sum=0;break; case
2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case
5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case
8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break;
case 11:sum=304;break; case 12:sum=334;break; defaultrintf("data
error");break; }
05
加上某天的天数;判断是不是闰年
sum=sum+day; if(year%400==0||(year%4==0&&year%100!=0)) leap=1;
else leap=0;
06
如果是闰年且月份大于2,总天数应该加一天;sum自加
if(leap==1&&month>2sum++;
07
输出变量
printf("It is the %dth day.",sum); }
08
全部代码
main() { int day,month,year,sum,leap; printf("\nplease input
year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day);
switch(month){ case 1:sum=0;break; case
2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case
5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case
8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break;
case 11:sum=304;break; case 12:sum=334;break; defaultrintf("data
error");break; } sum=sum+day; if(year%400==0||(year%4==0&&year%100!=0)) leap=1;
else leap=0;
if(leap==1&&month>2)sum++;
printf("It is the %dth day.",sum); }
第2个回答 2019-07-31
#include<stdio.h>
int main()
{
int day,month,year,sum=0,leap;
printf("输入年月日如2019 7 12\n");
scanf("%d %d %d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day;
if((year%400==0||(year%4==0&&year%100!=0))&&month>2)
sum++;
printf("这是这一年的第%d天。",sum);
return 0;
}
方法2
#include<stdio.h>
int day_of_year(int (*p)[13],int year,int month,int day)
{
int i,leap;
leap=(year%100!=0 && year%4 ==0||year%400 ==0);
for(i=1;i<month;i++)
day+=*(*(p+leap)+i);
return day;
}
main()
{
static int day_tab[][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 a,b,c;
scanf("%d %d %d",&a,&b,&c);
printf("%d\n",day_of_year(day_tab,a,b,c));
}