2015年7月13日 星期一

[C][瘋狂程設][01_變數與型別] F020計算BMI

題目:

輸入身高(公尺)及體重(公斤),計算BMI=體重/身高平方,
若BMI< 18.5 則輸出"too thin"
若 18.5<=BMI<24 則輸出 "standard"
若 BMI>=24 則輸出 "too fat"

輸入:

240

輸出:

10↵\r\n
too thin

注意事項:

1.求次方使用函數

  pow(int 底數,float 指數),回傳值為double
  #include <math.h>

  example:input:10^2,output:100 
  pow(10,2)=100

2.浮點數顯示
去除小數點後面的0:使用%g
printf("%g",bmi);
顯示兩位整數以及四位小數:
printf("%2.4f",bmi);


-----

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define THIN 18.5
#define FAT 24
#define LEVEL_1 "too thin"
#define LEVEL_2 "standard"
#define LEVEL_3 "too fat"

int main(void){

 float height=0,weight=0,bmi=0;
 
 scanf("%f %f", &height,&weight);
 bmi = weight/pow(height,2);

 printf("%g\n",bmi);
 
 if(bmi<THIN){
  printf("%s",LEVEL_1);
 }else if(bmi>FAT){
  printf("%s",LEVEL_3);
 }else{
  printf("%s",LEVEL_2);
 }
 
 return 0;

}

2 則留言:

  1. 給個建議:

    1) 不用使用 pow 更不用引入 math 只要使用 height * height 就可以了。

    2) 有學過三元算子嗎? " ? : " 若用三元算子取代 if 則 printf 使用一次就可以了哦!

    回覆刪除
  2. printf("%s", bmi < THIN ? LEVEL_1 : bmi > FAT ? LEVEL_3 : LEVEL_2);

    回覆刪除