質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

4976閲覧

BMIを計算するプログラムについて

退会済みユーザー

退会済みユーザー

総合スコア0

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/10/24 16:01

BMIを計算するプログラムです.
注意点は以下の通りです.
1.プログラム中に大域変数を使用してはならない
2.プログラムは入力終了となるまで、入力受付と計算を繰り返すこと.入力終了は無効な入力がされた時とする
3.無効な入力とは、氏名が空文字列、身長・体重が正でないなど、自分で決めて良い
4.数値入力要求時に数字以外を入れた場合に無限ループになるが、そのままで良い
5.データ取得関数の戻り値は、入力が成功の時にtrueを、終了の時にfalseとなるようにする
6.標準体重計算関数、BMI計算関数は、関数から受け取る値が一つだけである.よって、引数で値を渡して、戻り値で結果を受け取る

以下が現在のコードです.

C++

1#include <string> 2#include <iostream> 3using namespace std; 4 5// プロトタイプ宣言 6bool getData(string* pName, double* pHeight, double* pWeight); // データ取得関数 7double calcStandardWeight(double height); // 標準体重計算関数 8double calcBMI(double height, double weight); // BMI計算関数 9void showResult(string name, double standardWeight, double bmi); // 結果出力関数 10 11/******************************** 12メイン関数 13********************************/ 14int main() { 15 bool getData(string * pName, double* pHeight, double* pWeight); 16 double calcStandardWeight(double height); 17 double calcBMI(double height, double weight); 18 void showResult(string name, double standardWeight, double bmi); 19} 20 21/******************************************** 22データ取得関数 23********************************************/ 24bool getData(string* pName, double* pHeight, double* pWeight) { 25 cout << "名前を入力してください" << endl; 26 cin >> *pName; 27 cout << "身長(m)を入力してください" << endl; 28 cin >> *pHeight; 29 cout << "体重(kg)を入力してください" << endl; 30 cin >> *pWeight; 31} 32 33/******************************************** 34標準体重計算関数 35********************************************/ 36double calcStandardWeight(double height) { 37 double standard = height * height * 22; 38} 39 40/******************************************** 41BMI計算関数 42********************************************/ 43double calcBMI(double height, double weight) { 44 double BMI=weight/(height*height); 45} 46 47/******************************************** 48結果出力関数 49********************************************/ 50void showResult(string name, double standardWeight, double bmi) { 51 string judgment; 52 if (bmi < 18.5) { 53 judgment = "やせ型"; 54 } 55 else if (bmi < 25) { 56 judgment = "標準型"; 57 } 58 else if (bmi < 30) { 59 judgment = "肥満型"; 60 } 61 else { 62 judgment = "高度肥満型"; 63 } 64 cout << name << "さんの" << "標準体重は" << standardWeight << "kgでBMIの値は" << bmi << endl << "BMIの判定は" << judgment << "です."; 65}

上記の2,3,4,5,6について現在のコードを修正するには,どこを直したら良いでしょうか?教えて下さい.よろしくお願いします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

なんかそれっポい結果が出るとこまで修正した。
あとはあなたのシゴトだ。

C++

1#include <string> 2#include <iostream> 3using namespace std; 4 5// プロトタイプ宣言 6bool getData(string* pName, double* pHeight, double* pWeight); // データ取得関数 7double calcStandardWeight(double height); // 標準体重計算関数 8double calcBMI(double height, double weight); // BMI計算関数 9void showResult(string name, double standardWeight, double bmi); // 結果出力関数 10 11/******************************** 12メイン関数 13********************************/ 14int main() { 15 string name; 16 double height; 17 double weight; 18 while ( getData(&name, &height, &weight) ) { 19 double standardWeight = calcStandardWeight(height); 20 double bmi = calcBMI(height, weight); 21 showResult(name, standardWeight, bmi); 22 } 23} 24 25/******************************************** 26データ取得関数 27********************************************/ 28bool getData(string* pName, double* pHeight, double* pWeight) { 29 cout << "名前を入力してください" << endl; 30 cin >> *pName; 31 cout << "身長(m)を入力してください" << endl; 32 cin >> *pHeight; 33 cout << "体重(kg)を入力してください" << endl; 34 cin >> *pWeight; 35 // 3. 無効な入力とは、氏名が空文字列、身長・体重が正でないなど、自分で決めて良い 36 return true; // ↑なので、無効入力などない! とした。 37} 38 39/******************************************** 40標準体重計算関数 41********************************************/ 42double calcStandardWeight(double height) { 43 return height * height * 22; 44} 45 46/******************************************** 47BMI計算関数 48********************************************/ 49double calcBMI(double height, double weight) { 50 return weight/(height*height); 51} 52 53/******************************************** 54結果出力関数 55********************************************/ 56void showResult(string name, double standardWeight, double bmi) { 57 string judgment; 58 if (bmi < 18.5) { 59 judgment = "やせ型"; 60 } 61 else if (bmi < 25) { 62 judgment = "標準型"; 63 } 64 else if (bmi < 30) { 65 judgment = "肥満型"; 66 } 67 else { 68 judgment = "高度肥満型"; 69 } 70 cout << name << "さんの" << "標準体重は" << standardWeight << "kgでBMIの値は" << bmi << endl << "BMIの判定は" << judgment << "です."; 71}

投稿2019/10/24 19:42

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問