您的位置:首页 > 编程语言 > C语言/C++

C语言编程100例:4

2017-04-05 09:37 232 查看
题目:输入某年某月某日,判断这一天是这一年的第几天?

分析:四年一闰,百年不闰,四百年再闰,结合网上闰年的判断方法可以归纳一下:

1、年份能被4整除;2、年份若是100的整数倍的话,需被400整除,否则是平年。具备这两个条件的就是闰年

所以我们根据以上的判断可以写出相应的判断条件:

普通年(不能被100整除的年份)的闰年判断方法:

(year%100!=0)&&(year%4==0)

世纪年(能被100整除)的闰年的判断:
(year%100==0)&&(year%400==0)

两个判断条件或的情况下就是闰年:
((year%100!=0)&&(year%4==0))||((year%100==0)&&(year%400==0))
#include<stdio.h>
int main(void){
int year,month,day;
int commonyear[12]={31,28,31,30,31,30,31,31,30,31,30,31};//设置一个数组用来记录平年的月份数量
int leapyear[12]={31,29,31,30,31,30,31,31,30,31,30,31};//设置一个数组用来记录闰年的月份数量。
int i,totalday=0;
scanf("%d %d %d",&year,&month,&day);//输入年,月,日
//判断年份.
//两个或判断语句,第一个或判断语句有两个条件,1.不能整除100且能够整除4.第二个或条件语句判断:1.能够整除100且能整除400
if(((year%100!=0)&&(year%4==0))||((year%100==0)&&(year%400==0))){
//一个for循环统计距离上个月份的所有月份总和。
for(i=0;i<month-1;i++){
totalday+=leapyear[i];
}
}else{
for(i=0;i<month-1;i++){
totalday+=commonyear[i];
}
}
//加上当月的天数
totalday+=day;
printf("%d",totalday);
return 0;
}


以上就是代码部分,整体来说题目不能就是要理清楚判断条件的设置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 编程