c語言英尺轉換為米?今天這道題目,正如字面意思一樣,是用C語言來實現厘米換算英尺英寸,下面我們就來說一說關于c語言英尺轉換為米?我們一起去了解并探讨一下這個問題吧!
c語言英尺轉換為米
今天這道題目,正如字面意思一樣,是用C語言來實現厘米換算英尺英寸。
這道題目呢,是收錄在基礎編程題目集當中的編程題第一題,按理來說沒啥難度,但為什麼我要放上來呢,因為這道題的題目意思存在歧義。
題目要求,理順邏輯話不多說,我們先來看看這道題目的要求:
1、如果已知英制長度的英尺foot和英寸inch的值,那麼對應的米是(foot inch/12)*0.3048。
2、現在要求輸入的是厘米數,求對應英制長度的英尺foot和英寸inch的值。
3、1foot=12inch。
以上就是給定的要求,照理來說,知道這些要求好,我們可以根據數學公式,把foot和inch分别用cm的形式,即用表達式的形式表現出來。
但這就是問題所在了。
如圖所示,根據題目要求,算出來的foot與cm的對應關系應該是這樣的。
可是我在具體做這道編程題的時候,用這樣的方式代入卻是錯誤的。
所以我去網上查了查,1英尺到底等于多少cm。
最終得到1foot=30.48cm。
代碼實現在清楚英尺與cm之間的關系後,我們也明白了這部分代碼該怎麼去寫。
1、要求輸入一個數,我們自然而然會想到用scanf函數。
2、1foot=30.48cm,然後輸入的是cm數,所以得到的foot值應該為foot=cm/30.48。
3、因為1foot=12inch,所以可以得到inch=30.48*cm/12,但是這樣做也是存在問題的,我們要根據這個公式來求得inch與cm之間的對應關系,所以這道題目就很有問題。
要求保留結果為整數,所以用int類型來代表inch和foot就行了。
#include<stdio.h>
int main(){
int foot = 0;
int inch = 0;
int cm = 0;
scanf("%d", &cm);
foot = cm/100.0/0.3048;
inch = (cm/100.0/0.3048-foot)*12;
printf("%d %d", foot, inch);
}
這道題目呢,到這邊就已經完成了,不過我們可以來看看這道題目在進行檢查的時候的要求。
分别有四個測試點。
1、sample、inch尾數不大于0.5,不是四舍五入而是截斷,這是因為用到了int數據類型,直接把小數點後面的數字給去掉了。
2、0,也是作為一個測試點。
3、foot為0的時候,應該也是0。
4、inch為0的時候,應該也是0。
正好這個程序都能滿足這些測試點。
總結這道題目呢,是因為題目存在歧義,當然也與我不知道英尺英寸與厘米之間的關系所導緻的,還是得多留心關于這種常識方面的知識才行。