プロが教える店舗&オフィスのセキュリティ対策術

年齢、体重、身長を入力してBMIとカウプ指数とロレール指数で肥満、標準、痩せすぎを判断するc言語のプログラムはどうやって作るのでしょうか?教えてください!

A 回答 (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;
}
    • good
    • 1

まず、以下のものを明確にします。


BMI、カウプ指数、ロレール指数 それぞれの……

1) 計算式
2) 肥満、標準、痩せすぎの判定基準
3) それぞれの数値を使用する年齢基準

それぞれの指数に対して、
・身長、体重から指数を計算する 1) の情報
・結果をもとに、肥満、標準、痩せすぎ を判断する 2) の情報
という式を作っておきます(関数にまとめるとなお良い)

あとは、

a) 年齢、体重、身長を入力
b) 年齢を元にどの指数を使うか判断する 3) の情報
c) 使う事を判断した指数での計算結果を出力する

以上です。
    • good
    • 1

手計算でやっていることをCで記述するだけです。


できなければ出来る人に発注する。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!