"); //-->
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
st1\:*{behavior:url(#ieooui) }
一、实验目的
<!--[if !supportLists]-->l <!--[endif]-->熟悉输出格式的设置;
<!--[if !supportLists]-->l <!--[endif]-->熟悉vector、list类型的使用;
<!--[if !supportLists]-->l <!--[endif]-->进一步熟悉string类型的使用。
二、实验环境
P4 1.7G计算机一台,Windows XP操作系统,Microsoft Visual C++ 2005编程环境。
三、实验内容及分析
(一)求数的平方
<!--[if !supportLists]-->1. <!--[endif]-->题意描述:提示用户输入一个整数 I,编写一个程序来计算从1~I 的双精度浮点数(double)值的平方。程序的输出分为两列:第一列是double值,第二列是double值的平方。使用控制器来控制输出,让数值按列左对齐排列起来。 注意,程序应当有一定灵活性,当 I 增长时我们不需要修正setw的参数(亦即对于任意合理的I值,程序的输出都将以合适的格式显示,而不会出现当I较大时格式混乱的情况)。
<!--[if !supportLists]-->2. <!--[endif]-->问题分析与解决
由于要求当 I 增长时我们不需要修正setw的参数,所以将setw的参数通过log10函数求得并向下取整得出w。这样就可以得到右对齐,要做到左对齐的话,还要用这个求出的参数w减去当前输出数字的宽度加上要输出字符“: ”的宽度2。
<!--[if !supportLists]-->3. <!--[endif]-->调试、测试运行情况及结果分析
<!--[if !supportLists]-->(1) <!--[endif]-->实验中碰到的问题及解决方法
pow、log10函数出现“ambiguous call to overloaded function ”的错误,解决方法:用static_cast <type-id> ( expression )显式类型转换。后来看到“static_cast conversions are not as safe as dynamic_cast conversions, because static_cast does no run-time type check, while dynamic_cast does.”但经过查找发现,static_cast可以用于int转double,但后者就不行。
pow函数并不是很好,通用性太强了,可能精度也会不佳。解决方法:自己写个square函数求平方。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。