C/C++编程题之取近似值

将之前一段时间在牛客上刷的题给大家分享一下。其中一道题是“取近似值”,现在将通过的代码贴一下,供大家参考。

写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int midec(int len)
{
    int sum = 1;
    int i = 0;
    for(i=0;i<len;i++)
    {
       sum *= 10;
    }
    return sum;
}
int getint(char *inputstream) 
{
    int count=0;
    int len = strlen(inputstream);
    int i;
    for(i=0;i<len;i++)
    {
        count+=(inputstream[i]-'0') * midec(len-i-1);
    }
    return count;
}
int main()
{
    char inputstream[100]={0};  
    char fixinputstream[100]={0};
    char b;
    int inputlen;
    int i;
    int j=0;
    int sum;
    while(scanf("%s",inputstream)!=EOF)
    {
        inputlen=strlen(inputstream);
        for(i=0;i<inputlen;i++)
        {
            if(inputstream[i]!='.')
            {
               fixinputstream[i]=inputstream[i]; 
            }
            else
            {
                j = i;
                break;
            }
        }
        if(j>0)
            b = inputstream[j+1];
        sum = getint(fixinputstream);
        if(b>='5')
            sum+=1;
        printf("%d",sum);
    }
}

猜你喜欢

转载自blog.csdn.net/lzyzuixin/article/details/111387526