c语言编程:输入某年某月某日,计算出这一天是该年的第几天?该怎么解答啊

如题所述

//输入年月日,输出是该年第几天
#include<stdio.h>
int
sum(int
month,int
day)
{
int
days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int
i;
for(i=1;i<month;i++)
day+=days[i];
return(day);
}
int
leap(year)
{
int
leap=0;
if((year%4==0&&year%100!=0)||(year%400==0))
leap=1;
return
leap;
}
void
main()
{
int
year,month,day,num;
printf("Please
input
year,month,day:\n");
scanf("%d,%d,%d",&year,&month,&day);
num=sum(month,day);
if(leap(year)&&month>=3)
num++;
printf("It
is
the
%dth
day.\n",num);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-01
#include "stdio.h"
#include "conio.h"
void 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;
default:printf("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) /*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("it is the %dth day.",sum);
getch();
}本回答被提问者采纳
相似回答