2012年(12)
分类: C/C++
2012-05-05 16:41:34
一、题目
小强不喜欢C语言,可是又必须完成林老师的作业,所以非常苦恼,但又得常常编程到深夜。上次林老师又布置了一道作业:给你一个非负的双精度浮点数D,然后将D向下取整转化成一个整数N。D的下取整就是把小数部分舍去,只留下整数部分。比如3.14的下取整就是3。
但是现在他遇到了一个麻烦的问题,就是C语言中的双精度浮点数的表示范围是远远大于整型数的表示范围的。你能帮助小强解决这个问题吗?
输入
只有一个双精度浮点数D,D用十进制小数表示,长度不大于300。D一定为非负数。D有可能存在前导零,即会出现07.09的情况,此时应该输出7,也有可能去掉前导零,比如.009,此时应该输出0。D也有可能为整数,如D=4,不包含小数点,此时应该输出4。除此之外,都是正常书写小数的习惯了。
输出
输出一个整数N,就是D的下取整。
样例输入
3.14
样例输出
3
提示
读入的时候用double型数据保存D,有可能存在精度不够的问题。
二、分析
1.因为数位过多,所以不适合使用double,int,等数据类型保存数据,故选择使用字符数组保存数据。
2.通过函数对输入的数组进行处理,目标:若有前导0,则去除;若无前导0,则可以知道结果应该为0;若为0,则结果为0。
3.主函数对处理过的字符串进行取整。
点击(此处)折叠或打开