Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1067139
  • 博文数量: 186
  • 博客积分: 4939
  • 博客等级: 上校
  • 技术积分: 2075
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-08 17:15
文章分类

全部博文(186)

文章存档

2018年(1)

2017年(3)

2016年(11)

2015年(42)

2014年(21)

2013年(9)

2012年(18)

2011年(46)

2010年(35)

分类: C/C++

2011-03-01 17:43:48

  1. #include <stdio.h>
  2.  int main(void)
  3. {int y,m,n,d;
  4. n=0;
  5.  printf("input your year\n");
  6.  scanf("%d%d%d",&y,&m,&d);// 格式是2010 02 02这样默认是空格分开

  7.  switch(m){
  8.  case 12: n+=30;
  9.  case 11: n+=31;
  10.  case 10: n+=30;
  11.  case 9: n+=31;
  12.  case 8: n+=31;
  13.  case 7: n+=30;
  14.  case 6: n+=31;
  15.  case 5: n+=30;
  16.  case 4: n+=31;
  17.  case 3: if((y%4==0&&y%100!=0)||y%400==0) n+=29;else n+=28;
  18.  case 2:n+=31;
  19.  case 1: n+=d;printf("today is %d of %d\n",n,y);break;
  20.  default: printf("please input a valid year no.\n");}
  21. }

仔细体会下case 里不带break的用法,假如用break,那2月要d+31以此类推了。

最后说下这个2010 02 31也能算出结果,健壮性不够,要做判断,用数组可能更好点。

阅读(813) | 评论(0) | 转发(0) |
0

上一篇:nagios总结

下一篇:学习一下递归和函数

给主人留下些什么吧!~~