使用c++,判断输出此日期是今年的第几天

使用vc6.0,用新建的c++ source file来编。

题目:
从界面上输入三个整数值,分别代表年月日。
然后程序判断输出此日期是今年的第几天。

提示:
1.总天数=前m-1个月的天数相加+本月天数
2.可用一个数组存储每个月的天数(如何看每个月的天数?)
3.注意闰年和非闰年2月份的天数不一样(29/28)

#include <iostream>
using namespace std;

int main()
{
int month[13] = { 0, 31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31 };
int y, m, d;
int i, day;
cout<<"输入年月日"<<endl;
cin>>y>>m>>d;
if(y % 400 == 0 || y % 100 != 0 && y % 4 == 0) {
month[2] = 29;
}
if(m >= 1 && m <= 12 && d >= 1 && d <= month[m]) {
day = d;
for(i = 1; i < m; ++i) {
day += month[i];
}
cout<<day<<endl;
}
else {
cout<<NULL;
}
return 1;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-20
#include <stdio.h>

int main()
{
int month[13] = { 0, 31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31 };
int y, m, d;
int i, day;
scanf("%d%d%d", &y, &m, &d);
if(y % 400 == 0 || y % 100 != 0 && y % 4 == 0) {
month[2] = 29;
}
if(m >= 1 && m <= 12 && d >= 1 && d <= month[m]) {
day = d;
for(i = 1; i < m; ++i) {
day += month[i];
}
printf("%d\n", day);
}
else {
printf("data error");
}
return 1;
}