1-1 average
double a = (1 + 2 + 11) / 3.0;
被除的必须是浮点数。
C:
printf("%.3f%\n", a);
C++:
cout << setprecision(3) << fixed << endl;
setprecision需要包含#iomanip
负责输出的位数
加上fixed(前后无所谓), 括号里的数字就变成了小数的位数。
小插曲:为了试验showpoint,设了个30的精度,结果小数尾巴上没有出0而是多了一堆莫名其妙的数字。
1-4 sin & cos
math.h里cos(), sin()接受的值应在0-6.28之间,此处输入是0-360, 所以应该经过一次转换,顺便把这个数变成float类型。
再次提醒,要除以360.0.
1-7 year
判断闰年的条件:
1.能被4整除,不能被100整除
2.能被400整除
问题1-5:如何用试验方法确定……OTZ
1.我记得是2 ^ 32 -1..然而实验?
2.精确……?C++从小数点后第17位开始胡说八道……用了1-1中出现问题的方式
3.跟int没区别嘛!
4.在这里随便怎么理解,因为结果不会有变化。
5.果然和离它最近的if配套了……要明确表示当然是加{}咯……
写到最后有点划水了……拖延症也想回寝室睡觉嘛……
次日补充:
一些问题的解决:
1.是2^31-1
2.setprecision不能输出比原位数更多的数字,关于为什么会输出近似数,参考:
《小数在内存中是如何存储的》http://blog.csdn.net/czg13548930186/article/details/72808396