No.3ベストアンサー
- 回答日時:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
char* BMI(double weight, double height) {
double b = weight / pow(height / 100, 2);
if (b < 18.5) {
return "低体重(痩せ型)";
} else if (b < 25) {
return "普通体重";
} else if (b < 30) {
return "肥満(1度)";
} else if (b < 35) {
return "肥満(2度)";
} else if (b < 40) {
return "肥満(3度)";
} else {
return "肥満(4度)";
}
}
char* Kaup(double weight, double height) {
double k = ((weight / 1000) / pow(height / 100, 2)) * 10;
if (k >= 22) {
return "肥りすぎ";
} else if (k >= 19) {
return "少し太り気味";
} else if (k > 15) {
return "正常";
} else if (k > 13) {
return "やせ";
} else if (k > 10) {
return "栄養失調";
} else {
return "消耗症";
}
}
char* Rohrer(double weight, double height) {
double r = (weight / pow(height / 100, 3)) * 10;
if (r < 100) {
return "やせすぎ";
} else if (r < 115) {
return "やせぎみ";
} else if (r < 145) {
return "普通";
} else if (r < 160) {
return "太りぎみ";
} else {
return "太りすぎ";
}
}
char* dispatch(int age, double weight, double height) {
if ((age >= 0) && (age <= 5)) {
return Kaup(weight, height);
} else if ((age > 5) && (age <= 12)) {
return Rohrer(weight, height);
} else if (age > 12) {
return BMI(weight, height);
} else {
return "(S)He has not yet been born!"
}
}
int main(int argc, char** argv) {
if (argc != 4) {
goto end;
}
printf("%s\n", dispatch(strtol(argv[1], NULL, 10),
strtol(argv[2], NULL, 10),
strtol(argv[3], NULL, 10)));
end:
return EXIT_SUCCESS;
}
No.2
- 回答日時:
まず、以下のものを明確にします。
BMI、カウプ指数、ロレール指数 それぞれの……
1) 計算式
2) 肥満、標準、痩せすぎの判定基準
3) それぞれの数値を使用する年齢基準
それぞれの指数に対して、
・身長、体重から指数を計算する 1) の情報
・結果をもとに、肥満、標準、痩せすぎ を判断する 2) の情報
という式を作っておきます(関数にまとめるとなお良い)
あとは、
a) 年齢、体重、身長を入力
b) 年齢を元にどの指数を使うか判断する 3) の情報
c) 使う事を判断した指数での計算結果を出力する
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- 筋トレ・加圧トレーニング 筋トレのついて 1 2022/07/18 14:37
- ダイエット・食事制限 この前学校でやった健康診断?みたいなのの結果が帰ってきました。4月にやったものです。 6 2022/06/25 23:35
- ダイエット・食事制限 以前に、山登りしていた頃は、標準体重でした。やめたら太る一方です。 年齢的に止めないと身体が悪くなる 6 2023/08/22 15:00
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- ダイエット・食事制限 20歳男です。体の割に顔、頬の肉が多いのは体質なんでしょうか。また体も下腹が出てたりあちこちに脂肪が 1 2022/04/17 16:24
- 体重計・体脂肪計・体組成計 体重計、体組成計の体年齢について 2 2023/02/04 22:59
- ダイエット・食事制限 ローレル指数と適正な体重 3 2022/12/04 10:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
65536は2の何乗なのでしょうか?
-
バッチファイルでウインドウを...
-
CCurの引値を文字列にする時と...
-
CRCについて教えてください
-
Visual C++でdebugとreleaseで...
-
C言語についてです。 再帰を使...
-
モジュラス103の計算とは何でし...
-
Java 電卓の連続計算
-
VBAで関数をつくる
-
エクセルで特定のセルのみを任...
-
0x0000ffffLの"L"って・・・
-
めちゃきれい
-
Scilabでfor文を使用しないで記...
-
パソコン
-
PHPで四則演算以外の微分、積分...
-
入射角反射角
-
VBとVBAの違い
-
駅間の距離を求め運賃計算するJ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
変化させるセルが変化しない
-
排他的論理和 BCC(水平パリテ...
-
VBAの再計算が反映されない件に...
-
VBAで関数をつくる
-
バッチファイルでウインドウを...
-
モジュラス103の計算とは何でし...
-
EXCELなどで「返す」という表現
-
数値計算の高速化 (cos, sin, exp)
-
傾いた四角形内の範囲の条件式
-
骨折リスク評価のFRAXについて...
-
matlab計算での進捗状況を知りたい
-
Excel VBAにてFFT
-
C言語についてです。 再帰を使...
-
C言語について 下の画像は do-w...
-
アドオン利率を実質年率に変換
-
エクセルで特定のセルのみを任...
-
電卓でmodの計算
-
引き放し法による除算アルゴリ...
-
y=(x^2 +3x+1)^4を微分の定義を...
おすすめ情報