Chinaunix首页 | 论坛 | 博客
  • 博客访问: 595532
  • 博文数量: 136
  • 博客积分: 893
  • 博客等级: 中士
  • 技术积分: 1001
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-31 09:18
个人简介

生命可以终止,梦想不会!

文章分类

全部博文(136)

文章存档

2016年(4)

2015年(2)

2014年(5)

2013年(7)

2012年(118)

分类:

2012-05-24 08:51:14


3.林老师的作业
这道题没有做出来。关于double去尾转换成整型数的问题,我知道是根据精度不足这个思路。但是由于不甚了解计算机关于此的具体工作原理,只能在多次尝试之后放弃。
 
5.日期
较为复杂问题,一步一步来,代码可能较多,但是这样能确保结果无误。同时根据计算机工作原理,可以达到很多意想不到的效果。(比如源代码中  flag函数的使用。)

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. int flag(int y)
  3. {
  4.  if(y%4)
  5.   return 0;
  6.  else
  7.   return 1;
  8. }
  9. int main()
  10. {
  11.  int cal[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
  12.  int n,y=2013,m=1,d=1;
  13.  scanf("%d",&n);
  14.  int dn=365+flag(y);
  15.  while(dn<n)
  16.  {
  17.   y++;
  18.   n=n-dn;
  19.   dn=365+flag(y);
  20.  }
  21.  while(cal[flag(y)][m-1]<n)
  22.  {
  23.   n=n-cal[flag(y)][m-1];
  24.   m++;
  25.  }
  26.  d=n;
  27.  printf("%d-",y);
  28.  if(m<10)printf("0");
  29.  printf("%d-",m);
  30.  if(d<10)printf("0");
  31.  printf("%d\n",d);
  32.  return 0;
  33. }

阅读(397) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~