我也不知道我爲何要寫這個鬼畜的東西←_←纔不是爲了水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