3.林老师的作业
这道题没有做出来。关于double去尾转换成整型数的问题,我知道是根据精度不足这个思路。但是由于不甚了解计算机关于此的具体工作原理,只能在多次尝试之后放弃。
5.日期
较为复杂问题,一步一步来,代码可能较多,但是这样能确保结果无误。同时根据计算机工作原理,可以达到很多意想不到的效果。(比如源代码中 flag函数的使用。)
- #include <stdio.h>
- int flag(int y)
- {
- if(y%4)
- return 0;
- else
- return 1;
- }
- int main()
- {
- 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}};
- int n,y=2013,m=1,d=1;
- scanf("%d",&n);
- int dn=365+flag(y);
- while(dn<n)
- {
- y++;
- n=n-dn;
- dn=365+flag(y);
- }
- while(cal[flag(y)][m-1]<n)
- {
- n=n-cal[flag(y)][m-1];
- m++;
- }
- d=n;
- printf("%d-",y);
- if(m<10)printf("0");
- printf("%d-",m);
- if(d<10)printf("0");
- printf("%d\n",d);
- return 0;
- }
阅读(397) | 评论(0) | 转发(0) |