c语言—输入年、月、日,算出该日是该年的第几天
/* Note:Your choice is C IDE */ #include "stdio.h" void main() { int y,m,d;//年、月、日 int cr,ds=0,i;//cr:判断是否为闰年的变量,是为1,否为0;ds:天数的总和;i是一个循环变量 char run[12] = {31,29,31,30,31,30,31,31,30,31,30,31};//闰年的每月的天数 char ping[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//平年的每月的天数 printf("请输入你要查询的年份:\n"); scanf("%d",&y);//输入年份 cr = y%4==0&&y%100!=0||y%400==0;//判断是否为闰年,是为1,否为0 do{ printf("请输入月份:\n"); scanf("%d",&m);//输入月份 if(m<0||m>12){//判断有没输入错误 printf("输入有误,请重新输入!\n");} }while(m<0||m>12);//有错重新输入 do{ printf("请输入日期:\n"); scanf("%d",&d);//输入日期 if(d>31){//判断有没有输入大于31号的 printf("输入有误,请重新输入!(一个月最多有31天)\n"); }else if(d>run[m-1]&&cr==1)//判断闰年某天数是否在该月的最多天数内 { printf("%d月最多有%d天,请重新输入!\n",m,run[m-1]); }else if(d>ping[m-1]&&cr==0)//判断平年某天数是否在该月的最多天数内 { printf("%d月最多有%d天,请重新输入!\n",m,ping[m-1]); } }while((d>run[m-1]&&cr==1)||(d>ping[m-1]&&cr==0)); if(cr == 1){//计算闰年的某天在该年的总天数 for(i=0;i<m-1;i++){ ds += run[i]; } }else {//计算平年的某天在该年的总天数 for(i=0;i<m-1;i++){ ds += ping[i]; } ds += d;//加上当月的天数 printf("%d年%d月%d日是该年的第%d天!",y,m,d,ds); } }