C语言程序设计:输入一个日期(含年、月、日),编程序输出该日期是该年度中的第

如题所述

y 年 m 月 d 日,是第几天 days 啊?
计算方法:
days = mon[1] + mon[2] + .... + mon[m-1] + d;
mon[i] 是 第 i 个月的天数;同时要注意,mon[2] 闰年29,否则28;

给出代码吧,虽然这样对你其实么有什么好处、

#include<stdio.h>

int main()
{
int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31};
int y, m, d, days;
int leap, i;
scanf("%d %d %d", &y, &m, &d);
for(i = 1, days = 0; i < m; i++)
days += mon[i];
leap = (y % 4 == 0 && y % 100 || y % 400 == 0) ? 1 : 0;
if(m > 2)
days++;
printf("days = %d\n", days);
}

自己读,自己写,经常百度,不好~~~
刚才有个单词打错了,sorry、、~~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-07
#include<stdio.h>
main()
{
int whatday(int,int,int);
int year,month,day,ans;
printf("input year month day : ");
scanf("%d%d%d",&year,&month,&day);
ans=whatday(year,month,day);
printf("%d年%d月%d日是%d年的第%d天。\n",year,month,day,year,ans);
}
int whatday(int year,int month,int day) /*计算给定年月日的某一天是当年的第几天*/
{
int isleap(int);
int i,j,k,ans=0;
switch(month)
{
case 1:ans=0;break;
case 2:ans=31;break;
case 3:ans=59;break;
case 4:ans=90;break;
case 5:ans=120;break;
case 6:ans=151;break;
case 7:ans=181;break;
case 8:ans=212;break;
case 9:ans=243;break;
case 10:ans=273;break;
case 11:ans=304;break;
case 12:ans=334;break;
}
ans+=day;
if(((year%100!=0&&year%4==0)||year%400==0)&&month>2)ans++;
return ans;
}
比如输入:2010 10 8
输出:2010年10月8日是2010年的第281天。

参考资料:http://zhidao.baidu.com/question/189309683.html

相似回答