编写一个函数用于判断某年是否为闰年,在主函数中调用此函数,判断用户输出的月份的天数。

能够写出函数判断某年是否闰年,但是调用函数判断输出天数就不知道该怎么写了,求大佬指点

#include<iostream>
using namespace std;

int main()
{
	int year,month;
	cin>>year>>month;
	if(month==2)
	{
		if((year%4==0 && year%100!=0) || year%400==0)
		cout<<"29";
		else
		cout<<"28";
	}
	else
	{
		switch(month)
		{
			case 1:cout<<"31";break;
			case 3:cout<<"31";break;
			case 4:cout<<"30";break;
			case 5:cout<<"31";break;
			case 6:cout<<"30";break;
			case 7:cout<<"31";break;
			case 8:cout<<"31";break;
			case 9:cout<<"30";break;
			case 10:cout<<"31";break;
			case 11:cout<<"30";break;
			case 12:cout<<"31";break;
		}
	}
	return 0;
} 

 

代码如下,如有帮助,请采纳一下,谢谢。

//判断是否是闰年
bool isRunnian(int year)
{
	if((year%4==0 && year%100!=0) || year%400==0)
		return true;
	else
		return false;
}
//获取天数
int days(int year,int month)
{
	if (month == 1 || month == 3 || month == 5|| month == 7|| month == 8 || month == 10 || month == 12)
	{
		return 31;
	}else if (month == 4 || month == 6 || month == 9 || month == 11)
	{
		return 30;
	}else if (month == 2)
	{
		if(isRunnian(year))
			return 29;
		else
			return 28;
	}else
		return -1;

}


int main()
{

	printf("请输入年和月份:");
	int year,month;
	scanf("%d %d",&year,&month);

	int d = days(year,month);
	printf("days=%d\n",d);



	getchar();
	getchar();
	return 0;
}

 

#include<iostream>
using namespace std;
bool is_leap_year(int year){
if((year%4==0)&&(year%100!=0)||(year%400==0))
    return true;
else
    return false;   
}
int day_of_month(int year,int month){
int day=0;
switch(month){
    case 1:
    case 3:
    case 5:
    case 7:
    case 8: 
    case 10:
    case 12:
        day=31;
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        day=30;
        break;
    case 2:
        day=28+is_leap_year(year);
        break;
}
return day;
}
int main(){
cout<<"请输入年份:"<<endl;
int year;
cin>>year;
cout<<" 请输入月份:"<<endl;
int month;
cin>>month;

int a=day_of_month(year,month);
cout<<year<<"年"<<month<<"月"<<"有"<<a<<"天"<<endl;
}

如果有帮助请采纳一下,谢谢!以后有什么问题可以互相交流。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

供参考:

#include<stdio.h>

int isLeap(int y)
{
    if((y%4==0 && y%100!=0)||(y%400==0))
        return 1;
    else
        return 0;
}
int GetDaysOfMonth(int y, int m)
{
    int daysOfMonth[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    if(isLeap(y) && m == 2) return daysOfMonth[m-1]+1;
    return daysOfMonth[m-1];
}

int main()
{
    int year,month;
    printf("请输入年份-月份:(yyyy-mm)");
    scanf("%d-%d",&year,&month);
    printf("%d年%d月有%d天\n",year,month,GetDaysOfMonth(year,month));
    
    return 0;
}