月下波斯猫R 月下波斯猫R
关注数: 91 粉丝数: 126 发帖数: 6,259 关注贴吧数: 22
科学记数法编程求大神帮忙解答一些疑问 对于非常大或者非常小的数据,我们通常用科学记数法来表示。例如在科技文献和电脑中经常遇到的 2.3×106 (计算机中的科学记数法表示为:2.3E6),或者 9.18×10-5 (科学记树法表示:9.18E-5)这种类型的数据。 输入:用科学记数法表示的数据。即为符合C语言表示的科学记数法表示。 输出:该数据的双精度表示 说明: 1.输入数据的精度不高于小数点后50位。 2.输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。 3.结果保留到小数点后8位,如不足8位用0补足,超过8位则截断,不进行四舍五入的处理。 友情提示:此题有点难啊!建议大家对问题要进行分析,分解为若干个小步骤,然后各个击破之。现在不要急于完成此题,待积累一定编程经验后再做。 编程思路:1.以字符方式一个一个读取输入数据,将尾数部分存入一个字符串,将指数部分转换为整数保存。尾数部分不要保存为实型数,因为尾数的小数部分可能很大,用实型数保存精度不够。 2.检查尾数字符串中是否有小数点,如果输入的尾数没有小数点,则在字符串中插入小数点。 3.根据给定的指数值移动小数点,可能有以下情况: (1)指数为正,右移小数点;在移动过程中已到字符串尾,则需要补0。 (2)指数为负,左移小数点;在移动过程中已到字符串首,则要将字符串整体右移一位,在字符串首补0。 4.找到现在小数点的位置,再向后数8个字符,如果后面数字字符的个数不够8个则补0,小数点后8个数字字符的后面是字符串结束标志。 5.输出字符串。 这是题目
1 下一页