c语言编程问题,输入年号和月份,输出这一年该月天数

如题所述

#include <stdio.h>
void main ( )
{ int year, month,leap,i;
printf("请输入年号:");
scanf("%d",&year);
{ if (year%400==0)
leap=1;
else
{ if (year%4==0&&year%100!=0)
leap=1;
else
leap=0;
}
}
if (leap==1)
{
printf("请输入月份:");
scanf("%d",&month);
switch (month)
{ case 1 : i=31; break;
case 2 : i=29; break;
case 3 : i=31; break;
case 4 : i=30; break;
case 5 : i=31; break;
case 6 : i=30; break;
case 7 : i=31; break;
case 8 : i=30; break;
case 9 : i=30; break;
case 10: i=30; break;
case 11: i=30; break;
case 12: i=31; break;
default : printf("输入错误");
}
printf("%d年%d月有%d天\n",year,month,i);
}
else
{
printf("请输入月份:");
scanf ("%d",&month);
switch (month)
{ case 1 : i=31; break;
case 2 : i=28; break;
case 3 : i=31; break;
case 4 : i=30; break;
case 5 : i=31; break;
case 6 : i=30; break;
case 7 : i=31; break;
case 8 : i=30; break;
case 9 : i=30; break;
case 10: i=30; break;
case 11: i=30; break;
case 12: i=31; break;
default : printf("输入错误");
}
printf("%d年%d月有%d天\n",year,month,i);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-19
用mon数组记录每月天数,
函数days返回对应天数,
如果month等于2月则需要判断是否闰年,所以算法是
return mon[month] + (month是2月 && 是闰年)

// 函数days实现
int days( int year, int month)
{
const static int mon[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
return mon[month] + (month==2 && (year%400==0 || year%100 && year%4==0));
}本回答被提问者和网友采纳
第2个回答  2012-12-07
main()
{int year,month,days,a;
scanf("%d,%d",&year,&month);
if(year %400==0 || (year%4==0 && year%100!=0))
a=0;
else a=1;
swith(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12: days=31;break;
case4:
case6:
case9:
case11: days=30;break;
case2: if(a=1)days=28;else days=29;break;
default:printf("month error");break;
}
printf("The days are %d",days);
}
第3个回答  2012-12-07
你需要先计算出平年的每个月的天数,用一个switch语句就可以了
然后判断这一年是不是闰年,是的话再看看是不是2月是的话 前一步获得的天数要加1变成29
代码前面几位朋友都给出了
我就不写了
第4个回答  2013-03-07
调试过的
#include<stdio.h>
void main()
{ int temp=0,month,year;
printf("Please input (year,month):");
scanf("%d,%d",&year,&month);
if((year%400==0)||(year%4==0&&year%100!=0))
temp=1;
{if(month==2)
{if(temp==
1)
printf("%dyear%dmonth have 29 days\n",year,month);
else printf("%dyear%dmonth have 28 days\n",year,month);
}
else
{ if(month<=7)
{if(month%2==1)
printf("%dyear%dmonth have 31 days\n",year,month);
else
printf("%dyear%dmonth have 30 days\n",year,month);}
else
{if(month%2==1)
printf("%dyear%dmonth have 30 days\n",year,month);
else
printf("%dyear%dmonth have 31 days\n",year,month);}
}
}
}
相似回答