#include"stdioh"
#include"stdlibh"
int main()
{ int y,m,days;//存放年、月、天数的变量
printf("请输入年、月(逗号隔开):\n");//输入提示
scanf("%d,%d",&y,&m);//输入边长(输入时用逗号隔开)
printf("%d %d\n",y,m);
switch(m)
{ case 1:case 3:case 5:case 7:case 8:case 10:case 12:days=31;break;
case 4: case 6: case 9: case 11: days=30;break;
case 2: {if(y%4==0&&y%100!=0||y%400==0)days=29;//闰年
else days=28;
break;
}
default:days=0; //输入月份不对
}
printf("%d年%d月有%d天\n",y,m,days);
system("pause");
}
事实上,除了闰年的2月外,其它各个月的天数都是固定的。
所以,除了对2月特殊判断一下是否为闰年外,其它均可直接输出。
方便起见,将每月天数存在数组中,以减少代码量,并提高效率。
#include <stdioh>int main()
{
int m,y;
int days[12] = {31, 28, 31,30,31,30,31,31,30,31,30,31};
scanf("%d%d",&y,&m);
if(m == 2)
{
if(y%400==0 || (y%4==0 && y%100!=0))//闰年。
printf("29\n");
else printf("28\n");
}
else
printf("%d\n", days[m-1]);
return 0;
}
//我自己写的,不是很好,见笑了。
int
isleapyear(int
year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
return
1;
else
return
0;
}
main()
{
int
m,y;
printf("请输入正确的年月,例如:2008-8。\n");
scanf("%d-%d",&y,&m);
if
((m>12)||(m==0))
printf("请输入正确的月份。\n");
switch(m){
case
2:printf("%d年%d月是小月,%d天。",y,m,(28+isleapyear(y)));break;
case
4:
case
6:
case
9:
case
11:printf("%d年%d月是小月,30天。",y,m);break;
default:printf("%d年%d月是大月,31天。",y,m);break;
}
}
用 if 判断是否闰年。月份的天数存于数组,用月做下标。
#include <stdioh>
int main(){
int MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int y,m;
printf("input year month:2018 2\n");
scanf("%d %d",&y,&m);
if (((y%4==0)&&(y%100!=0)||(y%400==0)))MonthDay[2]=29; //闰年
if (m<0 || m >12)m=0; //错误的月
printf("%d\n",MonthDay[m]); //输出结果
return 0;
}
以上就是关于输入年,月,计算该月的天数 C语言程序全部的内容,包括:输入年,月,计算该月的天数 C语言程序、C语言 从键盘输入年号和月号,计算这一年的这一月共有几天。、C语言程序求任意年月该月的天数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)