C语言有以下几种取整方法:

1、直接赋值给整数变量。如:

int i = 2.5; 或 i = (int) 2.5;

这种方法采用的是舍去小数部分

2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),但是整数除法对负数的取整结果和使用的C编译器有关。3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:

floor(2.5)

= 2

floor(-2.5) =

-34、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:

ceil(2.5)

= 3

ceil(-2.5) = -2floor()是向负无穷大舍入,floor(-2.5) =

-3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。

5、round(x)返回x的四舍五入整数值。

但是在C里面round、ceil和floor()函数是返回double型,

先在网上发现一个简单的向上取整方法;

这里我们用<>表示向上取整,[]表示向下取整,那么怎么来表示这个值呢?

我们可以证明:

=[(N-1)/M]+1 (0

不失一般性,我们设N=Mk+r(0<=r

1)当r>0时,

左边:===k+=k+1

右边:[(N-1)/M]+1=[(Mk+r-1)/M]+1=[k+(r-1)/M]+1=k+1+[(r-1)/M]=k+1

2)当r=0

左边:=k

右边:[(N-1)/M]+1=[(Mk-1)/M]+1=[(M(k-1)+M-1)/M]+1=[k-1+(M-1)/M]+1=k+[(M-1)/M]=k

命题得证。

有了这个公式,我们在代码里可以这样计算:

int nn=(N-1)/M +1

.

因为'/'是往下取整的。

用法:

1

2

3

4

5

6

7

#include

double ceil(double x);

double floor(double x);

double round(double x);

ceil(x)返回不小于x的最小整数值(然后转换为double型)。

floor(x)返回不大于x的最大整数值。

round(x)返回x的四舍五入整数值。

给个例子test.c:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#include

#include

int

main(int

argc, const

char

*argv[])

{

float

num = 1.4999;

printf("ceil(%f) is

%f\n", num, ceil(num));

printf("floor(%f) is

%f\n", num, floor(num));

printf("round(%f) is

%f\n", num, round(num));

return

0;

}

编译:$cc test.c -lm

执行:$./a.out

ceil(1.499900) is 2.000000

floor(1.499900) is 1.000000

round(1.499900) is 1.000000

根号n向下取整的c语言编程,【向上取整/向下取整】C语言向上或向下取整 函数...相关推荐

  1. C语言编程>第二周 ⑦ 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。

    例题:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩 ...

  2. 文华财经是C语言编程吗,各位大神们,帮我把这指标改下,文华财经里不能用...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 MID:=(3*CLOSE+LOW+OPEN+HIGH)/6; 牛线:(20*MID+19*REF(MID,1)+18*REF(MID,2)+17*REF ...

  3. C语言编程>第二周 ⑥ 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    例题:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 代码如下: /*程序分析:利用for循环语句求解*/ #include& ...

  4. c语言编程时碰到取整去不了_碰到编程墙时如何解开

    c语言编程时碰到取整去不了 Getting stuck is part of being a programmer, no matter the level. The so-called " ...

  5. C语言复习笔记——适合一些需要复习和进阶c语言的朋友,这只能说是个概要。当然,如果朋友你看到某个内容能联想到知识点,那你应该是掌握了的,你可以尝试找找其他的文章去深入理解下,如有错误和疑问可以直接指出

    C语言基本数据类型 C语言常量 什么是常量: 固定的值 常量的分类: 整形常量 //整数 //1,2,3,4 十进制数 //特殊格式的整数 //0123 八进制:0开头 //08---> 不算 ...

  6. Linux下C语言编程

    第1章 Linux下C语言编程简介 本章将简要介绍一下什么是Linux,C语言的特点,程序开发的预备知识,Linux下C语言开发的环境,程序设计的特点和原则以及编码风格等.通过本章的学习,可以对在Li ...

  7. 初识Linux下C语言编程

    本章将简要介绍一下什么是Linux,C语言的特点,程序开发的预备知识,Linux下C语言开发的环境,程序设计的特点和原则以及编码风格等.通过本章的学习,可以对在Linux下使用C语言编程有一个基本的了 ...

  8. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍  3)Linux程序设计入门--文件操作  4)Linux程序设计入门--时间概念  5)Linux程序设计入门--信号处理  6)Linux程序设计入门--消 ...

  9. spring 数组中随机取几个_游戏编程中需要掌握哪些数学物理知识

    一. 相似三角形知识的应用 在摇杆控制物体运动的游戏中,摇杆的手柄(下图黄色圆饼),不能移出摇杆所在的套(下图灰色圆环),也就是说摇杆偏离中心点的最大距离为max_R.一旦触摸移动过程中移动的点超出此 ...

  10. Linux下C语言编程-进程的创建

    Linux下C语言编程-进程的创建 作者:hoyt 1.进程的概念 Linux操作系统是面向多用户的.在同一时间可以有许多用户向操作系统发出各种命令.那么操作系统是怎么实现多用户的环境呢?在现代的操作 ...

最新文章

  1. libsvm java api文档,libsvm-javaAPI
  2. 用python打造一款文件搜索工具,所有功能自己定义!
  3. 周志华:最新实验表明gcForest已经是最好的非深度神经网络方法
  4. HTML5做手机站页面字体显示很小的解决方法
  5. Codeforces Round #715 (Div. 2) D. Binary Literature 构造
  6. flutter中的异步机制Future
  7. 《嵌入式C编程:PIC单片机和C编程技术与应用》一第1章C语言概述和程序结构1.1 C源代码...
  8. 风客科技网管培训资料
  9. vue项目实践教程2:使用vux设计登录注册,并讲解vue路由,切换页面标题等内容
  10. 前后端数据交互之前端传值到后台
  11. gradle依赖冲突的解决方式
  12. RUP---统一软件开发过程
  13. eclipse搭建简单的web服务,使用tomcat服务
  14. linux ldconfig 刷新动态库,linux下动态共享库的创建,使用与更新(包括ldconfig的使用)g++ -WI -soname...
  15. 尚硅谷 谷粒学院 毕业设计 在线教育 部署文档
  16. 尚硅谷大数据课程flink1.13代码实现与笔记记录
  17. 微信小程序-数据库基础操作
  18. mysql乘法_mysql乘法
  19. mid代表计算机,MID是什么
  20. Python解析m3u8拼接下载mp4视频文件

热门文章

  1. instagram 爬虫 2021,下载可用
  2. layui框架实战案例(9):layPage 静态数据分页组件
  3. Redis安装与开机启动
  4. 马哥Linux 高端运维云计算就业班
  5. 欠采样临界采样matlab,信号临界采样、过采样、欠采样实验报告
  6. [转转转]面试常见逻辑推理题目及答案整理
  7. 记录为小电机安装一个5012编码器(多摩川协议)的过程
  8. 电脑实用的软件及工具
  9. ADAMS学习视频强力推荐--《Adams/ view从入门到提高》ftc正青春制作
  10. ae怎么卸载已经安装的插件_ae红巨人插件卸载教程!