70776


身長、体重を入力することで、身長、体重、BMI、肥満度、適正体重を出力するプログラムを作成したいのですが、コンパイルはできるものの、明らかにおかしい数字が出てきてしまい、どこがおかしいのかがよくわかりません。  
とりあえず自分は以下のようにプログラムをしました。

[code]

    #include<stdio.h>
    
    void print_nw(double height,double weight)
    {
         double bmi,tekisei;
         
         bmi=weight/(height*height);
         tekisei=height*height*22;
         printf("身長=%.1f cm,体重=%.1f kg\n",height,weight);
         printf("BMI=%.1f\n",bmi);
         printf("適正体重は%.1f kgです。\n",tekisei);
         if(bmi<18.5){
           printf("低体重です。\n");
         } else if(18.5<=bmi && bmi<25){
           printf("標準体重です。\n");
         } else if(25<=bmi && bmi<30){
           printf("肥満一度です。\n");
         } else if(30<=bmi && bmi<35){
           printf("肥満二度です。\n");
         } else if(35<=bmi && bmi<40){
           printf("肥満三度です。\n");
         } else {
           printf("肥満四度です。\n");
         }
    }
    
    int main()
    {
        double h,w;
        printf("身長(cm)? ");
        scanf("%lf",&h);
        printf("体重(kg)? ");
        scanf("%lf",&w);
        
        print_nw(h,w);
    
        return 0;
    }
    
[/code]

＜実行結果＞

[code]

    $ ./a.out
    身長(cm)? 163
    体重(kg)? 45
    身長=163.0 cm,体重=45.0 kg
    BMI=0.0
    適正体重は584518.0 kgです.
    低体重です。
    
[/code]

しかし、正しくプログラムができていれば、以下のような結果が出てくるはずです。

[code]

    身長(cm)? 163
    体重(kg)?　45
    身長=163.0 cm,体重=45.0 kg
    BMI=16.9
    適正体重は58.4 kgです。
    低体重です
    
[/code]

どの部分を直せばいいのでしょうか。ご回答よろしくお願いします。


CC BY-SA 4.0
2020-09-28T06:09:29.357
70774
2020-09-28T07:24:36.993
2020-09-28T07:24:36.993
3060
41837
question
c
肥満度を表す体格指数を計算するプログラムを作成したが、計算結果が正しい値にならない


BMI計算で掛ける身長は単位がmだった気がするので、単純に`height*height`の計算が`163×163(cm)`ではなく`1.63×1.63(m)`の計算になる必要があるような気がします。


CC BY-SA 4.0
2020-09-28T06:20:33.867
70776
2020-09-28T06:33:44.267
2020-09-28T06:33:44.267
70774
answer