我是靠谱客的博主 天真店员,最近开发中收集的这篇文章主要介绍牛客网华为机测-6-取近似值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

方法1:使用round()函数

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
    float a;
    cin >> a;
    cout << round(a) << endl;
}

fix
朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;
floor
朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;
ceil
朝正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;
round
四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2

方法2:利用scanf取整

#include <stdio.h>
#include <iostream>

using namespace std;
int main()
{
    double a;
    scanf("%lf", &a);
    int i = a;
    a = a - i;
    if(a > 0.5 || a == 0.5)
        i += 1;
    cout<<i<<endl;
    return 0;
}

scanf("%d",&n)的工作原理是:
从当前输入流中开始读取字符,跳过所有的空白字符(空格、制表符、回车),直到第一个非空白字符。如果该字符为数字,继续向后读入字符,直到遇到第一个非数字字符,将该字符放回输入缓冲区中。然后,将读到的所有数字字符转换成一个整型数,并赋值给变量n。最后,返回成功读入的数据个数1。
如果scanf读到的第一个非空白字符不是数字,那么认为读取失败,n将不会被赋值,同时返回成功读入的数据个数0。
如果scanf读到EOF标志,则结束读入并返回-1。之前读入的所有数字仍然会被转换为整型并赋值给n。

方法3: int向下取整

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    float n;
    cin>>n;
    int d=n;
    float num=d+0.5;
    if(n>=num)
        cout<<d+1<<endl;
    else
        cout<<d<<endl;
    return 0;
}

最后

以上就是天真店员为你收集整理的牛客网华为机测-6-取近似值的全部内容,希望文章能够帮你解决牛客网华为机测-6-取近似值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部