C语言编程100例:4

来源:互联网 发布:大数据专业大学排名 编辑:程序博客网 时间:2024/06/06 01:46

题目:输入某年某月某日,判断这一天是这一年的第几天?

分析:四年一闰,百年不闰,四百年再闰,结合网上闰年的判断方法可以归纳一下:
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且能整除400if(((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;}

以上就是代码部分,整体来说题目不能就是要理清楚判断条件的设置。

0 0
原创粉丝点击