#include <stdio.h>
int main()
{
//定义变量
int day,month,year,leap,ok,sum = 0;
printf("***查询开始***\n\n");
//用循环实现多次查询
for(;;)
{
//获取年份数据
printf("please input year:");
scanf("%d",&year);
//判断是不是闰年
if(year % 400 == 0 || (year % 4 == 0 && year % 100!=0))
leap=1;
else
leap=0;
//循环确保误输入的月份是小余12的,
for(;;)
{
//获取月份数据
printf("please input month:");
scanf("%d",&month);
if(month<=12)
break;
else
printf("date error\n");//数据不符合要求时报错
}
//确保输入的对应月份的日期是正确的
for(;;)
{
//获取日期数据
printf("please input day:");
scanf("%d",&day);
//判断输入的日期是否真的存在,也是防止错误输入时程序计算错误但是并不报错
if((month==2&&leap==1&&day<=29)||(month==2&&leap==0&&day<=28))
break;
else if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day<=31)
break;
else if((month==4||month==6||month==9||month==11)&&day<=30)
break;
else printf("date error\n");
}
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("date error\n");break;
}
//日期计算
sum=sum+day;
if(leap==1&&month>2)
sum++;
//结果输出
printf("\nIt is the %dth day.\n\n",sum);
//提示是否需要重复查询
printf("是否需要继续查询? 是1/否2:");
scanf("%d",&ok);
if(ok==2)
{
printf("\n***查询结束,呵呵再见!!***\n\n");//退出提示
break;
}
else
printf("\n***请继续查询***\n");
}
return 0;
}
输入一个年份,月份,日.判断是闰年还是平年,输出是这年的第几天!写到这里出问题了,下不下去了.求拯救啊! |
|