|
/*题目:输入某年某月某日,判断这一天是这一年的第几天?*/
闰年是年份数可以给400整除,或能给4整除而不能给100整除
只要注意闰年情况,很容易。
一,
#include<stdio.h>
int main()
{
static month[]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,y,m,d,sum=0;
printf("请输入日期--年 月 日\n");
scanf("%d%d%d",&y,&m,&d);
if(y%400==0||(y%4==0&y%100!=0))month[1]=29;
for(i=0;i<m-1;i++)sum+=month;/*数组从0开始数的(month[0])*/
sum+=d;
printf("%d",sum);
}
二,
int main()
{
int y,m,d,sum=0;
printf("请输入年月日");
scanf("%d%d%d",&y,&m,&d);
switch(m){
case 12:sum+=30;
case 11:sum+=31;
case 10:sum+=30;
case 9:sum+=31;
case 8:sum+=31;
case 7:sum+=30;
case 6:sum+=31;
case 5:sum+=30;
case 4:sum+=31;
case 3:sum+=28;
case 2:sum+=31;
case 1:sum+=0;break;
default:printf("data error");
}
sum+=d;
if(y%400==0||(y%4==0&&y%100!=0))
sum+=1;
printf("%d",sum);
}
虽然这样简单,但对初学者仍有值得注意的问题:
1,数组界线
2,switch用法的break。为什么在第二种方法中case条件从12而不是从1,最后才用break? |
|