哥哥姐姐们帮我下吧!!!编程问题!
一个简单的问题!!高手们帮我写下我看看吖!!
问题是输入某年某月某日,判断这一天是这一年的第几天!!(要考虑闰年!)
先谢谢了!! 用C语言写!!!
参考答案:呵呵,以前写过,给你吧,有两种方法,一个最简单的是
#include <stdio.h>
//int count(year,month,day)
int num;
void main()
{
int year;
int month;
int day;
printf("请输入年:");
scanf("%d",&year);
printf("请输入月:");
scanf("%d",&month);
printf("请输入日:");
scanf("%d",&day);
num=count(year,month,day);
printf("该日是该年的第%d天",num);
}
int count(year,month,day)
{
int num;
if(year%4==0 && year%100!=0 || year%400==0)
{
switch(month)
{
case 1:num=day;break;
case 2:num=31+day;break;
case 3:num=60+day;break;
case 4:num=91+day;break;
case 5:num=121+day;break;
case 6:num=152+day;break;
case 7:num=182+day;break;
case 8:num=213+day;break;
case 9:num=244+day;break;
case 10:num=274+day;break;
case 11:num=305+day;break;
case 12:num=335+day;break;
}
}
else
{
switch(month)
{
case 1:num=day;break;
case 2:num=31+day;break;
case 3:num=59+day;break;
case 4:num=90+day;break;
case 5:num=120+day;break;
case 6:num=151+day;break;
case 7:num=181+day;break;
case 8:num=212+day;break;
case 9:num=243+day;break;
case 10:num=273+day;break;
case 11:num=304+day;break;
case 12:num=334+day;break;
}
}
return (int)num;
}
用结构体做的是
#include <stdio.h>
void main()
{
int ansi_month[]={31,28,31,30,31,30,31,31,30,31,30,31};
int day_in_year=0;
int i;
struct annual
{
int year;
int month;
int day;
}date;
printf("input year:");
scanf("%d",&date.year);
printf("input month:");
scanf("%d",&date.month);
printf("input day:");
scanf("%d",&date.day);
for(i=0;i<date.month-1;i++)
{
day_in_year = day_in_year + ansi_month[i];
}
day_in_year = day_in_year+date.day;
if(((date.year%4==0 && date.year%100!=0) || date.year%400 == 0) && date.month>2)
{
day_in_year = day_in_year+1;
}
printf("the day is No.%d day in the year\n",day_in_year);
}