エラーはでないが数値がおかしい(BMI値計算プログラム)
今以下のようなプログラムを製作中なのですがどうしてもうまくいきません;
(1)ユーザに身長と体重を入力してもらう
(2)(1)の値からBMI値を計算し、その結果から「太りすぎ」などの判定を表示し
(3)身長・体重から計算した標準体重と現在の体重との差を表示する
問題は以下です。
・身長と体重の数値を変えても結果(BMI値)は毎回同じで、
100万台の桁違いな数値がでる;(しかし「太りすぎ」などの判定は変化する)
どこがおかしいのかチェックするために(1)の部分のあとに改めて身長と体重を
表示させてみたところ、そこからすでに数値が変なことになっていたので、
おかしいとしたら(1)のscanfなどの部分か型宣言だと思うのですが…
回答よろしくお願いします;;
プログラム
------------------------------------------------
/* bmi.c */
#include <stdio.h>
main()
{
int sintyo, taizyu;
double sintyo2, bmi, hyozyun, sa;
//入力
printf("身長(cm)を入力してください\n");
scanf("%d", &sintyo);
printf("体重(kg)を入力してください\n");
scanf("%d", &taizyu);
//※チェック(身長・体重)
printf("%d\n", &sintyo);
printf("%d\n", &taizyu);
//計算
sintyo2 = sintyo / 100; //cm→m
bmi= taizyu / (sintyo2 *sintyo2); //BMI値計算
hyozyun = (sintyo2 *sintyo2) * 22;//標準体重
sa = hyozyun - taizyu;
//※チェック(BMI値)
printf("%d\n", &bmi);
//出力
if(bmi>=25)
printf("BMI値:%f\nあなたは太りすぎです\n", &bmi);
else if(bmi>=23 && bmi<25)
printf("BMI値:%f\nあなたは太りぎみです\n", &bmi);
else if(bmi>=21 && bmi<23)
printf("BMI値:%f\nあなたは標準です\n", &bmi);
else if(bmi>=18.5 && bmi<21)
printf("BMI値:%f\nあなたは痩せぎみです\n", &bmi);
else
printf("BMI値:%f\nあなたは痩せすぎです\n", &bmi);
if(sa>=0)
printf("標準体重:%fkg\n標準体重を+%fkgオーバーしています\n",&hyozyun, &sa);
else
printf("標準体重:%fkg\n標準体重より-%fkgです\n",&hyozyun, &sa);
return 0;
}
結果(身長160、体重50で入力)
------------------------------------------------
身長(cm)を入力してください
160
体重(kg)を入力してください
50
1310600 (←身長チェック 以下3つの値は不動です;)
1310596 (←体重チェック)
1310580 (←BMI値チェック)
BMI値:0.000000
あなたは太りすぎです
標準体重:0.000000kg
標準体重より-+NANkgです
補足
BMIや体脂肪率は健康なんですがお腹を見ると三段ばらでこまってます しかもだいぶ大きいです。 テニスをしていて腕や脚には脂肪が少ないんですが お腹がすごいです お腹だけにつくことってありえますか??