/* Part 演習問題4 */
/* BMI(ローレル指数)の計算(関数版) */
#include <stdio.h>

struct person {
  int id ;           /* 個人ID   */
  double h ;    /* 身長(m)  */
  double w ;    /* 体重(Kg) */
} ;

int bmi(struct person *) ;

int main(void)
{
  struct person x ;
  int value ;

  printf("個人ID 身長(m) 体重(Kg)を入力してください(EOFで終了)。\n") ;

  while(1) {
    if(scanf("%d %lf %lf",&x.id,&x.h,&x.w)==EOF) break ;
    if((x.id<1)||(x.h<0.3)||(x.h>2.5)||(x.w<1)||(x.w>300)) {
      printf("入力データに誤りがあります。入力し直してください。\n") ;
    }
    else {
      value=bmi(&x) ;
      printf("BMI=%d  -> ",value) ;
      if(value<100) printf("やせすぎ\n") ;
      else if(value<114) printf("やせている\n") ;
      else if(value<144) printf("普通\n") ;
      else if(value<159) printf("太っている\n") ;
      else printf("太りすぎ\n") ;
    }
  }
  return(0) ;
}

/* BMI(ローレル指数)の計算 */
int bmi(struct person *x)
{
  int v ;
 
  v=(x->w*10)/(x->h*x->h*x->h) ;

  return(v) ;
}


個人ID 身長(m) 体重(Kg)を入力してください(EOFで終了)。
1 1.67 61
BMI=130  -> 普通
2 1.75 78
BMI=145  -> 太っている
3 1.7 95
BMI=193  -> 太りすぎ
4 1.6 50.3
BMI=122  -> 普通
5 1.65 -34
入力データに誤りがあります。入力し直してください。
5 0.1 3.4
入力データに誤りがあります。入力し直してください。
5 1.65 47.3
BMI=105  -> やせている
6 1.71 42.2
BMI=84  -> やせすぎ