首页 > 试题广场 >

取近似值

[编程题]取近似值
  • 热度指数:573487 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。

数据范围:保证输入的数字在 32 位浮点数范围内

输入描述:

输入一个正浮点数值



输出描述:

输出该数值的近似整数值

示例1

输入

5.5

输出

6

说明

0.5>=0.5,所以5.5需要向上取整为6   
示例2

输入

2.499

输出

2

说明

0.499<0.5,2.499向下取整为2   
#include <stdio.h>

int main() {
    double f;
    scanf("%lf", &f);
    int comp = (int)(f*10) % 10;
    if (comp >= 5) //小数点后数值大于等于5
    {
        printf("%d", (int)f+1);
    }
    else //小数点后数值小于5
    {
        printf("%d", (int)f);
    }
    return 0;
}

发表于 2024-05-16 14:33:36 回复(0)
#include <stdio.h>
#include <math.h>
int main() {
    float a=0;
    float b=0;
    scanf("%f",&a);
    if(a<=0) return 0;
    b=fmod(a,1.0);             //记录小数位值
    if(b<0.5){
     printf("%.0f",a-b);           //小数位小的,舍去
    }else{
        printf("%.0f",a-b+1);          //小数位大的,进位
    }
    

    return 0;
}

编辑于 2024-03-23 20:18:23 回复(0)
#include <stdio.h>

int main() {
 float a;
 int b;
 float c;
 float d = 0.5;
 float e =1;
 scanf("%f",&a);
 b = (int)a;
 c=a-(float)b;
 if(a<e){
if(a>=d)
{
printf("%d",b+=1);
}
if(a<d)
{
printf("%d",b);    
}
 }
 if(a>=e)
{
if(c>=d)
{
printf("%d",b+=1);
}
if(c<d)
{
printf("%d",b);    
}
return 0;
}}
编辑于 2024-03-02 12:38:28 回复(0)
#include <stdio.h>

int main() {
    float b =0;
    scanf("%f",&b);
    printf("%d",(int)(b+0.5));
    return 0;
}

发表于 2023-12-01 19:37:20 回复(0)
#include <stdio.h>

int main() {
    float a;
    int b;
    scanf("%f", &a);
    b=a;
    if((a-(float)b)>=0.5) {
        b++;
    }

        printf("%d\n", b);

    return 0;
}


发表于 2023-09-08 22:38:03 回复(0)

#include <stdio.h>
#include <math.h>
int main() {
    float number;
    int round;
    scanf("%f", &number);
    round = roundf(number);
    printf("%d", round);
    return 0;
}

发表于 2023-05-31 18:27:39 回复(0)
#include <stdio.h>
int main() {
    float a;
    int b;
    scanf("%f", &a);
    b = (int)a;
    printf("%d\n", (a - b) >= 0.5 ? (b + 1) : b);
    return 0;
}
发表于 2023-05-08 00:25:04 回复(0)
#include <stdio.h>

int main() {
    float f;
    scanf("%f",&f);

    f = (int)f + ((f-(int)f) >= 0.5 ? 1 : 0);
    printf("%d",(int)f);

    return 0;
}


发表于 2023-05-04 13:07:06 回复(0)
#include<stdio.h>
int main()
 {
   float a=0;
   int b = 0;
   scanf("%f",&a);
   {
    b=a+0.5;
    printf("%d",b);
   }
 
 
    }
发表于 2023-04-29 10:37:36 回复(0)
/**  题目:HJ7 取近似值
  *  思路:将输入数值 + 0.5,然后用int型输出
  *  难点:暂时没发现
  */
#include <stdio.h>

int main() {
    float num;

    scanf("%f", &num);
    num = num + 0.5;

    printf("%d",(int)num);

    return 0;
}

发表于 2023-03-26 20:03:52 回复(0)
#include <stdio.h>

int main() {
    float n = 0;
    scanf("%f", &n);
    printf("%d", (int)(n + 0.5));
    return 0;
}

发表于 2023-03-08 00:39:32 回复(0)
#include <stdio.h>
#include <string.h>
int main()
{
    float n;
    scanf("%f",&n);
    n *= 10;
    int y = (int)n;
    int x=(y % 10);
    if(x >= 5)
    {
        y += 10;
        y /= 10;
    }
    else
    {
        y /= 10;
    }
    printf("%d",y);
    return 0;
}
发表于 2023-02-14 15:43:55 回复(0)
int main() {
   float input;
   scanf("%f",&input);
   //获取输入
   int ret=input+0.5f;//四舍五入

   printf("%d\n",ret);
    return 0;
}

发表于 2022-12-31 18:37:15 回复(0)
int main() {
    float a;
    int b;
    while (scanf("%f", &a) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld")
        b=(int )a;
        if(( a -b) >=0.5)
        printf("%d\n", b+1);
        else
        printf("%d\n", b);
    }
    return 0;
}
发表于 2022-10-29 18:22:48 回复(0)
#include <stdio.h>
#include <math.h>

int main(){

    double num,p;

    while(scanf("%lf",&num) != EOF){

        if(num > 0){
            if(modf(num,&p)>=0.5 ){
                p+=1;
                printf("%d\n",(int)p);                
            }else{
                printf("%d\n",(int)p);
            }
            
            break;
            
        }else{
            printf("请输入正浮点数值!\n");
        }

    }

}

发表于 2022-09-07 23:41:03 回复(0)
#include<stdio.h>
#include<ctype.h>
int main()
{
    float num;
    int tem;
    scanf("%f",&num);
    tem=(int)(num);
    num-=tem;
    if(num>=0.5)
        printf("%d",tem+1);
    else
        printf("%d",tem);
    return 0;
}

发表于 2022-09-07 21:38:17 回复(0)
#include <stdio.h>

int main() {
    float f_num;
    
    scanf("%f", &f_num);
    printf("%d", (int)(f_num + 0.5));    // 加0.5取整
}
// 64 位输出请用 printf("%lld")

发表于 2022-06-29 15:56:59 回复(0)
发表于 2022-05-26 09:47:12 回复(1)

问题信息

难度:
33条回答 73717浏览

热门推荐

通过挑战的用户

查看代码