不知道大家在寫 BMI 的題目時,有沒有遇到甚麼問題呢?
我們今天就來講解一下 BMI 的題目吧!
這是我寫的程式碼:
#include<stdio.h>
int main(){
float height, weight, BMI;
printf("請輸入身高(m) 體重(kg),並用空白鍵區分>> ");
scanf("%f %f", &height, &weight);
BMI = weight / (height * height);
printf("BMI = %f,且", BMI);
if(BMI < 18.5)
printf("您的體重過輕");
else if(18.5 <= BMI && BMI < 24)
printf("您的體重適中");
else
printf("您的體重過重");
return 0;
}
這是輸出結果:
當然可能因為每個人的思考模式不同,寫出來的程式碼也不一樣。但只要能解決問題的程式,就是對的程式!!
先來講講寫程式的思路:
1.我們可能需要宣告三個變數,分別是輸入的身高體重,以及計算的 BMI,當然 BMI 這個變數也可以直接用計算式代替,但因為想要好懂一點,所以我用了 BMI 這個變數,而這三個變數可能會有小數點,所以我們宣告他為浮點數(float)。
2.scanf("%f %f", &height, &weight);
這一行兩個輸入變數之間是空格,所以我們輸入時要按照身高(空格)體重(enter)的形式。
3.我們有三個條件需要判斷,值得注意的是if(18.5<=BMI && BMI<24)
這一行,是 BMI 如果大於等於 18.5 且 BMI 小於 24 時為真,會往下執行。
以上就是我的思路~可以參考參考!!!
當然,這題相對簡單,我們可以把條件都寫滿,也就是說我們計算出來的 BMI 數值一定會落在某一個判斷式裡面,在這個情況下我們就可以連用三個 if
:
#include<stdio.h>
int main(){
float height, weight, BMI;
printf("請輸入身高(m) 體重(kg),並用空白鍵區分>> ");
scanf("%f %f", &height, &weight);
BMI = weight / (height * height);
printf("BMI = %f,且", BMI);
if(BMI < 18.5)
printf("您的體重過輕");
if(18.5 <= BMI && BMI < 24)
printf("您的體重適中");
if(BMI >= 24)
printf("您的體重過重");
return 0;
}
只是希望大家還是可以熟悉 if
跟 else
的搭配~
然而,當條件判斷非常多的時候,我們或許可以使用"switch statement"會更有效率~
明天,就讓我們來講講 switch statement~