我也不知道我为何要写这个鬼畜的东西←_←才不是为了水blog量什么的(划掉),实际上是为了明天给学弟学妹们传教准备。html
这道题对彻底对c语言没有概念的小萌新们极度友好,能够锻炼小萌新们的代码能力。ide
本篇blog附的代码会在极大限度上追求代码的可读性,并介绍一个实用的函数——ceil,下面咱们来正式进入讲解。函数
一只大象口渴了,要喝20升水才能解渴,但如今只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。spa
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。code
输出一行,包含一个整数,表示大象至少要喝水的桶数。htm
23 11blog
3ip
附上原题连接→_→http://noi.openjudge.cn/ch0103/14/get
因为是对萌新用,我就写详细一些。本题大体分为以下这些步骤:数学
一、定义两个浮点型变量h,r,用于存储后来读入的数据,并进行相关计算;
二、读入h,r;
三、输出20/(Pi*r*r*h/1000)向上取整的结果(数学问题不予解释
以上,咱们发现咱们遇到了一个问题——h,r最开始是浮点型变量,但最后咱们要将其通过必定的计算后对计算结果上取整后输出,这时咱们要引入一个神奇的函数——ceil。
ceil是一个定义在math.h里的函数,其功能是返回大于或等于指定表达式的最小整数。
有点绕是吗?咱们来看几个例子:
ceil(4.3)=5;
ceil(4.9)=5;
ceil(5.0)=5.
是否是明白了一些呢?但须要注意的是,ceil返回的函数值依旧是浮点型,咱们须要使用(int)将其强行转为整型后输出。
1 #include<stdio.h> 2 #include<math.h>//因为用到ceil,因此咱们要用到这个头文件 3 int main() 4 { 5 double h,r;//定义两个浮点型变量h,r 6 scanf("%lf%lf",&h,&r);//读入h,r 7 printf("%d",(int)ceil(20/(h*r*r*3.14159/1000)));//输出20/(Pi*r*r*h/1000)向上取整 8 return 0; 9 }
弱弱地说一句,本蒟蒻码字也不容易,转载请注明出处http://www.cnblogs.com/Maki-Nishikino/p/5970819.html