加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

定义一个结构体变量(包括年、月、日),计算该日在本年中为第几天?(注意考虑闰年问题)

(2012-12-11 19:44:54)
标签:

c

算法

it

分类: C
定义一个结构体变量(包括年、月、日),计算该日在本年中为第几天?(注意考虑闰年问题),要求写一个函数days,实现上面的计算。由主函数将年月日传递给days函数,计算后将日子传递回主函数输出。

typedef struct date{

              int year;

              int month;

              int day;

}Date;

void days(int year,int month,int day)

{

        int sum=0;

        int Feb=0;

        if (year%400==0) {

        Feb=29;

        }else if ((year%4==0 )&& (year%100!=0)){

        Feb=29;

        }else{

        Feb=28;

    }

     switch (month) {

          case1:sum=day;

          break;

          case2:sum=31+day;

          break;

          case3:sum=31+Feb+day;

          break;

          case4:sum=31+31+Feb+day;

          break;

          case5:sum=31+31+Feb+30+day;

          break;

          case6:sum=31+31+Feb+30+31+day;

          break;

          case7:sum=31+31+Feb+30+31+30+day;

          break;

          case8:sum=31+31+Feb+30+31+30+31+day;

          break;

          case9:sum=31+31+Feb+30+31+30+31+31+day;

          break;

          case10:sum=31+31+Feb+30+31+30+31+31+30+day;

          break;

          case11:sum=31+31+Feb+30+31+30+31+31+30+31+day;

          break;

          case12:sum=31+31+Feb+30+31+30+31+31+30+31+30+day;

          break;

          default:

          break;

  }

     printf("为本年的第%d",sum);

}

 

int main()

{

    Date a;

    printf("please input year:");

    scanf("%d",&a.year);

    printf("please input month:");

    scanf("%d",&a.month);

    printf("please input day:");

    scanf("%d",&a.day);

    days(a.year,a.month,a.day);

    return0;

}

算法写的水平欠佳但运行结果还算正确


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有