编程实现显示用户输入的月份拥有的天数。(需要考虑闰年的月份)
方法一:switch结构
#include<stdio.h>
int main ()
{
int year,month,flag;
printf("Input year,month:");
scanf("%d,%d",&year,&month);
switch (month)
{
case 1:
printf("31 days\n");
break;
case 2:
{
if(year%4==0&&year%100!=0) //判断是否是闰年
flag=1;
else if(year%400==0)
flag=1;
else
flag=0;
if(flag==1)
printf("29 days\n");
else
printf("28 days\n");
}
break;
case 3:
printf("31 days\n");
break;
case 4:
printf("30 days\n");
break;
case 5:
printf("31 days\n");
break;
case 6:
printf("30 days\n");
break;
case 7:
printf("31 days\n");
break;
case 8:
printf("31 days\n");
break;
case 9:
printf("30 days\n");
break;
case 10:
printf("31 days\n");
break;
case 11:
printf("30 days\n");
break;
case 12:
printf("31 days\n");
break;
}
return 0;
}
方法2:数组
#include<stdio.h>
#define MONTHS 12
int main ()
{
int days[2][MONTHS] = {{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};
int year, month;
do{
printf("Input year,month:");
scanf("%d,%d",&year,&month);
}while(month < 1 || month > 12);
if((year%4 == 0)&&(year%100!= 0)||(year%400 == 0)) //判断是否是闰年
printf("The number of days is %d\n",days[0][month-1]); //注意数组名
else
printf("The number of days is %d\n",days[1][month-1]);
return 0;
}
总的来说:运用数组进行运算更加j简短、简便。
不足之处,还请各位大佬多多指教 :)