编程论坛
注册
登录
编程论坛
→
C++教室
结构体的题目求助!!
ku_klox
发布于 2010-05-31 21:18, 452 次点击
2、定义日期结构体类型,包含三个整形成员,代表年月日,编写函数计算由主函数传给该函数的日期是这一年的第几天
3 回复
#2
jiayou_yatou
2010-05-31 21:49
struct data
{
int year;
int month;
int day;
}
#3
yuls
2010-05-31 23:22
给你个框架,func()函数自己实现哈。。。。
#include<iostream>
using namespace std;
struct date
{
int month;
int year;
int day;
} D;
void Setdate(int year,int month,int day)
{
D.year=year;
D.month=month;
D.day=day;
}
void func()
{
int d;//第几天
if(( D.year%4==0&& D.year%100!=0)||( D.year%400==0))//闰年与平年分别计算
{
//闰年1,3,5,7,8,10,12 月 31天 ,二月29 天,其余30天。。。。
// .....
}
else
{
// 平年注意二月 28天。。。。
//....
}
cout<<d;
}
void main()
{
int year ,month ,day;
cout<< "input year month and day"<<endl;
cin>>year >>month >>day;
Setdate(year,month,day);//设置 日期
func();//计算
}
#4
南国利剑
2010-06-01 00:54
看看这个符合要求吗?
程序代码:
#include
<iostream.h>
#include
<stdio.h>
struct
date
{
int
year;
int
month;
int
day;
};
int
fun(
const
date& d)
{
int
n=
0
;
int
a[]={
0
,
31
,
28
,
31
,
30
,
31
,
30
,
31
,
31
,
30
,
31
,
30
,
31
};
if
(d.year%
100
==
0
)
{
if
(d.year%
400
==
0
)
a[
2
]=
29
;
}
else
if
(d.year%
4
==
0
)
a[
2
]=
29
;
for
(
int
i=
1
;i<d.month;i++)
{
n+=a[i];
}
n+=d.day;
return
n;
}
int
main(
int
argc,
char
* argv[])
{
date d;
cout
<<
"
请输入年:
"
;
cin
>>d.year;
cout
<<
"
请输入月:
"
;
cin
>>d.month;
cout
<<
"
请输入日:
"
;
cin
>>d.day;
int
n;
n=fun(d);
printf(
"
%d年%d月%d日是%d年的第%d天。\n
"
,d.year,d.month,d.day,d.year,n);
return
0
;
}
1