您的位置:首页 > 其它

华为oj 取近视值

2016-04-21 23:34 274 查看
写出一个程序,接受一个浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。

知识点 函数

运行时间限制 10M

内存限制 128

输入

输入一个浮点数值

输出

输出该数值的近似整数值

样例输入 5.5

样例输出 6

问题分析:

水题。

整数好理解,就是我们常用的四舍五入,用输入的数+0.5然后取整输出就好。

关键是负数,这个问题描述的很不清楚,按理来说-5.5向上取整得到的应该是-5,可是,华为oj平台得到的结果是-6才是争取的,所以,如果是复数我们只能这么判断,先将这个数取反(得到正数),然后+0.5,然后用int来截断取整,最后输出的时候再将负号加回去。

-(int)(-a+0.5)

或者

(int)(a-0.5)

代码:

// 取近似值.cpp : 定义控制台应用程序的入口点。

//

//#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

float a;

cin >> a;

int num;

if (a>0)

num = (int)(a + 0.5);

else

num = (int)(a - 0.5);

cout << num << endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: