注册 登录
编程论坛 C++教室

结构体的题目求助!!

ku_klox 发布于 2010-05-31 21:18, 452 次点击
2、定义日期结构体类型,包含三个整形成员,代表年月日,编写函数计算由主函数传给该函数的日期是这一年的第几天
3 回复
#2
jiayou_yatou2010-05-31 21:49
struct data
{
    int year;
    int month;
    int day;
}
#3
yuls2010-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