• 締切済み

プログラミングのC言語について質問です。

プログラミングのC言語について質問です。 身長をS(cm)T(kg)に入力して、身体比bmiをしたの式で計算し、体型を判定して身長、体重、及び体型を出力するプログラムを作成せよ。ただし、入力データは4種類あるので{データの入力、計算、判定、出力}を繰り返し命令によって、4回繰り返すようにする。 身長比 (body mass index) : bmi = 体重÷身長の二乗×10000 <体型判定基準> bmi<19ならば「痩せ型」 bmi>24ならば「肥満型」 19≦bmi≦24ならば「標準型」 <出力形式> 身長は 173.5cm 体重は 63.5kg 身長比(bmi)はXXX.Xで、標準型の体型です。 ifを使ってやるのですが、書き方が分からないので分かる方よろしくお願いします。

みんなの回答

  • hiropuri
  • ベストアンサー率55% (24/43)
回答No.3

追記です。カテゴリが「学問&教育」だったので、この質問は おそらく情報処理系の出題かと思いました。No.2さんの形で、 動作としてはまったくもって正しいですが、「仕様に対する設計」 として考えると、教師によっては満点をくれない可能性が……。 その為、提示されている条件はベタに全て記述する方が無難かと 思われます。 なお、 「else if」で繋げて記述した場合 「if」でそれぞれを記述した場合 いずれも正しいですが、動きとしては異なる点にご注意下さい。 条件に対して値が被る場合は、else if を利用して、1つの 結果だけを出力するようにする必要があります。優先順位の 高い条件を先頭に書くと良いです。 今回はbmiなので、性質的に「値が被る事」はありえない為、 その点を気にする必要はありません。

  • cotae_bb
  • ベストアンサー率53% (51/95)
回答No.2

if文の記述は以下の通り if (bmi < 19){ // 「痩せ型」のメッセージ出力 }else if (24 < bmi){ // 「肥満型」のメッセージ出力 }else{ // 「標準型」のメッセージ出力 } 繰り返しはfor文で行えば良いと思います。

  • hiropuri
  • ベストアンサー率55% (24/43)
回答No.1

「if文で条件判定をうまく記述できない」という事でよろしいでしょうか? (=プログラムを全て書く必要はないかと思ったので……) ifによる判定部分は以下の形になるかと思います。 if(bmi < 19) { // 痩せ型 } if( (19 <= bmi) && (bmi <= 24) ) { // 標準型 } if(bmi > 24) { // 肥満型 }

関連するQ&A

  • プログラミング言語C

    名前(char name[20]),年齢(intage),身長(double height),体重(double weight)の4つのメンバを持つ構造体であるperson型を宣言し,以下のようなプログラムを作成せよ. 1.1つの構造体変数を宣言し,それぞれのメンバの値を入力させ表示する. 2.構造体person型の配列を作成し,3人分のデータを入力して表示する. 3.BMIを求める関数double bmi(person *p) を作成し,入力した3人分のデータからそれぞれのBMIを求め表示する. BMIとはBody Mass Indexのことで肥満度を表す指数 体重をw(kg),身長をt(m)とすると,BMI = w/t2 解答お願いします。

  • BMIについて

    身長162センチ、体重50キロ、妊婦です。 身長・体重から計算する肥満度の判定方法のBMI指数だと19くらいです。 ですが、体重計で量るBMIでは28もあり、肥満になります。 やはり体重計のBMIが正しいのでしょうか? 痩せ型ですが、最近妊娠5ヶ月で最近つわりが終わったのもありすごい食べています。(甘いものなども) でも体重は増えてません。 肥満ということになるのでしょうか?

  • javaプログラミングについて

    身長、体重を入力して、肥満型、標準型、痩せ型かを判断し表示するjavaプログラムを作りたいのですがまったくわかりません。 一体どういうプログラミングになるのでしょうか?if-else文でお願いします。 一応、標準体重=(身長-100)*0.9、体重が標準体重の1.1倍以上ならば「肥満型」、0.9倍~1.1倍ならば「標準型」、0.9倍以下ならば「痩せ型」と表示したいです。

  • C言語でのプログラム作成について

    授業でIf文の問題が出たのですが、なかなか上手く作成できないので、教えていただけないでしょうか。やればやるほど上手くいかなくて困っているのでお願いします。 問題 身長(cm)と体重(kg)を入力して、それらの値からBMI値を求め出力せよ。さらに求められたBMI値によりそれぞれ以下のようなメッセージを出力せよ。 BMI値          出力メッセージ 18.5以下        Yasegimidesu      18.5以上25.0以下   Futsuudesu 25.0以上30.0未満   Futorifimidesu 30.0以上        Futorisugidesu ※BMI値計算のための式は以下の通りです。(身長がメートル単位であることに注意) BMI値=体重(kg)÷(身長(m)×身長(m)) 例えば身長167cm、体重60kgの場合、 BMI値=60÷(1.67×1.67)となる。 よろしくお願いします。

  • 実用的なjavaプログラムを作りたい

    実用的なプログラムを作りたいのですが、 入力をcsvファイルで 名前1,172.3,65.8(名前,身長,体重) 名前2,164.5,47.9 名前3,180.3,94.7 ・ ・ ・ といったファイルを呼び出したときに 出力をcsvファイルで 平均身長:172.4,平均体重:69.5 名前1,172.3,65.8,22.2,標準(名前,身長,体重,BMI,判定) 名前2,164.5,47.9,17.7,痩せ 名前3,180.3,94.7,29.1,肥満 ・ ・ ・ といった具合にcsvファイルを作ることができるjavaを作ろうと思ったのですが、数十時間格闘してまったく進展がありません。 どうかアドバイスをください。 BMI判定は20以下が痩せで25以上が肥満です ( )は表示しなくてよいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • C言語について

    今、大学の授業でやさしいC第3版という本をつかってC言語の勉強していてわからない問題が出てきたので質問させてください。 問題9 Char型の変数ChとInt型の変数nを宣言し アルファベットの大文字1文字と 整数1つを入力させて 次の2つの事を実行する実行ファイルを作成せよ。 1.その文字を表示する。 2.文字コードを使ってその文字をn文字シフト させた文字を表示する。 Q: Zを1文字シフトさせた時Aが出力されるようにするには どうしたらよいか?アスキーコード表をにらんで考えよ。 問題10 キーボードから身長と体重を入力させて BMIを計算して表示する実行ファイルを 作成せよ。 BMI(Body Mass Index)とは 身長と体重から求める体格指数の1つで 身長 H (m)、体重 W (kg) の時 BMI=W/H2 で求められる。 これはまだ最初の方で第3章から第5章までのところをやっています。

  • BMIの数値って全然アテにならないのでは?

    BMIの数値って全然アテにならないのでは? ※BMI=体重 ÷ 身長(m)の2乗 22前後が標準体重とされる。18.5以下が痩せ。25以上が肥満。 が基本です。 私は身長163cmで体重52kg(体脂肪8%)の標準体型ですが 理想体重は58kgと出ました。私が体脂肪15%の時ですら55kgです。 正直、163cmの身長で58kgってどんだけデブなんだよって思ったぐらいです。 実際に私と同じぐらいの身長で59kgの人いますが、デブです。お腹とかポッチャリしてます BMIの計算方法を考えた人ってデブ専の人なんじゃないでしょうか? 体重と体脂肪率をこまめに見てた方がよっぽど参考になると思うんですが・・・ そりゃ基準ってあるだろうけど、BMIの基準数値の体重って高すぎじゃないですかね?

  • エラーはでないが数値がおかしい(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です

  • C言語で勉強中(max,min)の出し方

    C言語で勉強中(max,min)の出し方 maxまで表示が正しく出るようになったんですが、minでは終了時に入力の-999が表示されます。 今後、平均まで出るようにと考えているのですが、未だにminで思考停止中です。何がなんだかわかりません。どなたか、お助けください。 #include<stdio.h> main(void) { float cm,kg,m,bmi,max,min; int nin; cm=kg=nin=0; max=0; min=-0; printf("身長(cm)と体重を入力してください。\n"); while (cm=250,kg=200){ scanf("%f %f",&cm , &kg); max=min=cm; if(cm>max) max=cm; if(cm<min) min=cm; if(cm == -999 ||kg == -999) break; /*-999で終了 */ nin ++; m=cm/100.0 ; /* Mに変換 */ bmi=kg / m / m; /* BMIの計算 */ printf("身長%5.1f ",cm); printf("体重%5.1f ",kg); printf("BMI値%7.1f",bmi ); if(bmi>=25) printf("肥満です。\n"); if(bmi<18.5) printf("低体重です。\n"); if(bmi <25 && bmi>=18.5) printf("**.* \n"); } printf("総人数%d\n",nin); printf("最大身長%3.1fcm",max); printf( "最低身長%3.1fcm",min); return 0; }

  • c言語 標準体重計算のプログラミング

    標準体重計算のプログラミングを作成しています。身長(m)×身長(m)×22 での計算方法を採用していますが初心者なので全くでくません。全くなっていませんがここにのせます。 どなたか正しいプログラミングを教えてください #include <stdio.h> //標準体重の計算 int main (int argc, const char * argv[]) { int height; int weight; double x; double y; printf("あなたの標準体重を計算します\n\n"); printf("あなたの身長(cm)、体重(kg)を入力してください\n"); scanf("%d %d",&height,&weight); x=height/100; y=x*x*22; printf("これが標準体重です\n"); printf(" %y \n");