c语言编程简单问题会不会?

输出每个月的天数,本题要求实现一个简单函数,能计算给定的年份和月份的天数。使得可以利用该函数,输出给定年份中每个月的天数。其中1、3、5、7、8、10、12月有31天,4... 输出每个月的天数, 本题要求实现一个简单函数,能计算给定的年份和月份的天数。使得可以利用该函数,输出给定年份中每个月的天数。其中1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月平年有28天,闰年有29天。判断闰年的条件是:能被 4 整除但不能被 100 整除,或者能被 400 整除。函数接口定义:int MonthDays(int year, int month);其中year和month是用户传入的参数,如果1≤ month≤12,该函数必须返回year年month月的天数。裁判测试程序样例:#include <stdio.h>int MonthDays(int year, int month);int main(){ int ndays, month, year; scanf("%d", &year); for(month = 1; month <= 12; month++){ ndays = MonthDays(year, month); printf("%d ", ndays); } return 0;}/* 你的代码将被嵌在这里 */输入样例1:2000输出样例1:31 29 31 30 31 30 31 31 30 31 30 31输入样例2:2001输出样例2:31 28 31 30 31 30 31 31 30 31 30 31 展开
 我来答
匿名用户
2019-10-13
展开全部

#include <stdio.h>

int MonthDays(int year, int month);

int main()

{

    int ndays, month, year;

    scanf("%d", &year);

    for (month = 1; month <= 12; month++)

    {

        ndays = MonthDays(year, month);

        printf("%d ", ndays);

    }

    return 0;

}

/* 你的代码将被嵌在这里 */

int MonthDays(int year, int month)

{

    int a[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

    if(month==2&&(year%400==0||year%4==0&&year%100!=0))

        a[2]+=1;

    return a[month];

}

追问
好快啊 ,大佬,你是怎么学C语言的啊
我看不懂你的思路啊
White_MouseYBZ
2019-10-13 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6652万
展开全部

追问
为什么是这样写的,说说思路好吗
追答
这不就是查表思路嘛!把元月到12月的每月天数写到一个数组里,数组元素的下标与月份联系,用传过来的月份值当下标去查这一月的天数返回。2月份闰年与平年用传过来的年份值计算修正一下就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dwedit2000
2019-10-13 · 超过13用户采纳过TA的回答
知道答主
回答量:48
采纳率:66%
帮助的人:11.9万
展开全部
int MonthDays(int year, int month){
int a[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(month==2 and (year%400==0 or year%4==0 and year%100!=0)++a[2];
return a[month];
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式