文章

3

粉丝

185

获赞

1

访问

29.9k

头像
高分篇练习题——2.4
推荐阅读
C语言
发布于2021年6月13日 17:31
阅读数 11.5k

1. 1051 问题:写的太长了!,可以在判断完是否为闰年以后,就把保存月份天数的数组的2月给改了,这样后面month直接使用也没关系

//判断是否合理
//计算机是某一年第几天

int days[] = {29,31,28,31,30,31,30,31,31,30,31,30,31};
int check(int year,int month,int day){
	//-1 不合法
	//0 闰年
	//1 平年
	int tag = 1,aday;
	//正整数,大于零
	if(year <= 0)
		return -1;
	if(month > 12 || month < 1){
		return -1;
	}
	//判断闰年
	if(year % 400 == 0 ||(year % 4 == 0) && (year % 100 != 0)){
		tag = 0;
	}
	//得出aday
	if(month == 2){
		aday = days[tag*month];
	}
	else{
		aday = days[month];
	}
	if(day > aday || day < 1){
		return -1;
	}
	return tag;
}

int main(){
	int year,month,day;
	while(scanf("%d%d%d",&year,&month,&day) != EOF){
		int tag = check(year,month,day);//判断
		//cout << "tag:"<<tag <<endl;
		if(tag == -1){
			printf("Input error!\n");
		}
		else{
			//计算天数
			int allday = 0;
			int i;
			for(i = 1;i < month;i++){
				if(i == 2){
					allday += days[tag*i];
				}
				else{
	...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发