改了一個(gè)自己輸入年月日來查詢的代碼,大家可以參考一下。
增加了年月日輸入錯(cuò)誤提示,包括分辨了閏年2月是否輸入超過29之類的
增加了循環(huán),可以一直查詢
#include <stdio.h>
int main()?
{?
? ? //輸入需要計(jì)算的日期?
????int year;
? ? int month;
? ? int day;
? ? int sum;
? ? int flag;
? ? int num;
? ? while(1)
{
printf("Enter year:");
? ?scanf("%d",&year);
? ?printf("Enter month:");
? ?scanf("%d",&month);
? ?printf("Enter day:");
? ?scanf("%d",&day);
? ?if(year%100==0)
? ? ? ?if(year%400==0)
? ? ? ? ? ?flag=1;
? ? ? ?else
? ? ? ? ? ?flag=0;
? ?else
? ? ? ?if(year%4==0)
? ? ? ? ? ?flag=1;
? ? ? ?else
? ? ? ? ? ?flag=0;
num=month; //這里用來代替month
month--; ?//因?yàn)閼械酶暮竺娴脑路輸?shù)字了,理解一下就好
? ?switch(month)
? ?{
? ? ? ?case 11:
? ? ? ? ? ?sum+=30;
? ? ? ? if(month==11&&day>31)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-31\n",num);
? ? ? ? ? break;
? ? }
? ? ? ?case 10:
? ? ? ? ? ?sum+=31;
? ? ? ? ? ?if(month==10&&day>30)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-30\n",num);
? ? ? ? ? break;
? ? }
? ? ? ?case 9:
? ? ? ? ? ?sum+=30;
? ? ? ? ? ?if(month==9&&day>31)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-31\n",num);
? ? ? ? ? break;
? ? }
? ? ? ?case 8:
? ? ? ? ? ?sum+=31;
? ? ? ? ? ?if(month==8&&day>30)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-30\n",num);
? ? ? ? ? break;
? ? }
? ? ? ?case 7:
? ? ? ? ? ?sum+=31;
? ? ? ? ? ?if(month==7&&day>31)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-31\n",num);
? ? ? ? ? break;
? ? }
? ? ? ?case 6:
? ? ? ? ? ?sum+=30;
? ? ? ? ? ?if(month==6&&day>31)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-31\n",num);
? ? ? ? ? break;
? ? }
? ? ? ?case 5:
? ? ? ? ? ?sum+=31;
? ? ? ? ? ?if(month==5&&day>30)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-30\n",num);
? ? ? ? ? break;
? ? }
? ? ? ?case 4:
? ? ? ? ? ?sum+=30;
? ? ? ? ? ?if(month==4&&day>31)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-31\n",num);
? ? ? ? ? break;
? ? }
? ? ? ?case 3:
? ? ? ? ? ?sum+=31;
? ? ? ? ? ?if(month==3&&day>30)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-30\n",num);
? ? ? ? ? break;
? ? }
? ? ? ?case 2:
? ? ? ? if(month==2&&day>31)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d月請(qǐng)輸入日期1-31\n",num);
? ? ? ? ? break;
? ? }
? ? ? ? ? ?if(flag==1)
sum+=29;
? ? ? ? ? ?else
? ? ? ? ? ? sum+=28;
? ? ? ?case 1:
? ? ? ? ? ?sum+=31;
? ? ? ? ? ?if(flag==1)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? if(month==1&&day>29)
? ? ? ? ? ? ? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d年是閏年,%d月請(qǐng)輸入日期1-29\n",year,num);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
}
? ? ? ? ? ?else
? ? ? ? ? ? {
? ? ? ? ? ? ? ?if(month==1&&day>28)
? ? ? ? ? ? ? ? ? ? {
printf("\n日期輸入錯(cuò)誤!%d年不是閏年,%d月請(qǐng)輸入日期1-28\n",year,num);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
}
? ? ? ?case 0:
? ? ? ? if(year<1)
? ? ? ? {
? ? ? ? printf("\n年份輸入錯(cuò)誤!請(qǐng)輸入大于0的整數(shù)\n");
? ? ? ? break;
}
? ? ? ? if(day<1)
? ? ? ? {
? ? ? ? printf("\n日期輸入錯(cuò)誤!請(qǐng)輸入大于0的整數(shù)\n");
? ? ? ? break;
}
? ? ? ? if(month==0)
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? if(day>31)
? ? ? ? {
printf("\n日期輸入錯(cuò)誤!請(qǐng)輸入日期1-31\n");
? ? ? ? ? break;
? ? }
sum=day;
? ? ? ? ? ? ? ? ? ?month++;
? ? printf("\n%d年%d月%d日是該年的第%d天\n",year,month,day,sum);
? ? }
? ? ? ? ? ?else
? ? ? ? ? ? {
sum+=day;
? ? ? ? ? ? ? ?month++;
? ? printf("\n%d年%d月%d日是該年的第%d天\n",year,month,day,sum);
? ? }
break; ? ? ? ?
? ? ? ?default:
? ? ? ?printf("\n月份輸入錯(cuò)誤!請(qǐng)輸入1-12月份\n");
? ? ? ?break;
? ?}
}
return 0;
}
2018-07-21
111