C语言 从键盘输入年号和月号,计算这一年的这一月共有几天。

 我来答
风若远去何人留
推荐于2017-09-16 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20403 获赞数:450164
专业C/C++软件开发

向TA提问 私信TA
展开全部

事实上,除了闰年的2月外,其它各个月的天数都是固定的。

所以,除了对2月特殊判断一下是否为闰年外,其它均可直接输出。

方便起见,将每月天数存在数组中,以减少代码量,并提高效率。

#include <stdio.h>
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;
}
5528822
2006-11-17 · 超过39用户采纳过TA的回答
知道答主
回答量:303
采纳率:0%
帮助的人:0
展开全部
#include"stdio.h"
void main()
{
int b,s=0,a;
scanf("%d,%d",&a,&b);
switch(b)
{
case 1:s=31;break;
case 2:s=28;break;
case 3:s=31;break;
case 4:s=30;break;
case 5:s=31;break;
case 6:s=30;break;
case 7:s=31;break;
case 8:s=21;break;
case 9:s=30;break;
case 10:s=31;break;
case 11:s=30;break;
case 12:s=31;break;
}
if(a%4==0&&a%100!=0||a%400==0)
s=29;
else
s=28;
printf("这个月有%d天",s);/*如果是的是TC 不可以用中文*/
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chief_lfw
2006-11-17 · TA获得超过481个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:489万
展开全部
用数组按顺序记录每个月的的天数,
char month[13]={0,31,28,31,……};
int y,m;
scanf("%d",&y);
scanf("%d",&m);
if(( y%4==0 && y%100!=0) || y%400==0) && m==2)
printf("%d",month[m]+1);
else printf("%d",month[m]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式