编写一个计算天数的程序,用户从键盘输入年、月、日,在屏幕中输出此日期是该年的第几天
#include<stdio.h>
//自定义函数leap(),判断输入的年份是否为闰年
int leap(int a){
if(a%4==0&&a%100!=0||a%400==0){ //闰年判定条件
return 1;//是闰年返回1
}
else{
return 0;//不是闰年返回0
}
}
//自定义函数number(),计算输入的日期为该年的第几天
int number(int year,int m,int d){
int sum=0,i,j,k,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};//数组a存放平年每月的天数
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};//数组b存放闰年每月的天数
if(leap(year)==1){//是闰年,累加数组a前m-1个月的天数
for(i=0;i<m-1;i++){
sum+=b[i];
}
}
else{ //是平年,累加数组b前m-1个月的天数
for(i=0;i<m-1;i++){
sum+=a[i];
}
}
sum+=d;//加上该月内该日前的天数(包括该日)
return sum;//此时sum为该年内已经过的天数
}
//main函数作为程序的入口函数
int main(){
int year,month,day,n;
printf("请输入年月日:\n");
scanf("%d%d%d",&year,&month,&day);
n=number(year,month,day);//调用函数number()
printf("第%d天",n);
return 0;
}