先週の発展問題のように,肥満度を細かく判定するにはどうしたらよいか.
複数の条件のどれに当てはまるかを検討するためには,if() - else if() - else を組み合わせて使う.
基本的な分岐の流れは,以下のようにプログラム中の上から順に判定・分岐がされる.
1.1 今の体重を入力する 2. 必要な消費カロリーを計算する 3.1 消費カロリーの値が |
#include <stdio.h>
void main()
{
float a, b, c; /* aは今の体重,bは目標体重,cは必要な消費カロリー */
printf("今の体重は?[kg]");
scanf("%f", &a);
printf("目標体重は?[kg]");
scanf("%f", &b);
c = (a-b) * 7500;
printf("あなたはあと%fkcal消費する必要があります.¥n", c);
if ( c < 0 ) {
printf("ビリーとトレーニングする必要はありません¥n"); /* cが0未満の時実行 処理1*/
} else if ( c < 2500 ) {
printf("ビリーと1週間くらい運動だね¥n"); /* cが2500未満の時実行 処理2*/
} else if ( c < 10000 ) {
printf("ビリーと1ヵ月頑張ってみよう¥n"); /* cが10000未満の時実行 処理3*/
} else if ( c < 20000 ) {
printf("ビリーと2ヵ月頑張ってみよう¥n"); /* cが20000未満の時実行 処理4*/
} else if ( c < 30000 ) {
printf("ビリーと3ヵ月頑張ってみよう¥n"); /* cが30000未満の時実行 処理5*/
} else if ( c < 40000 ) {
printf("ビリーと4ヵ月頑張ってみよう¥n"); /* cが40000未満の時実行 処理6*/
} else {
printf("やっぱり食生活から見直そう¥n"); /* cが40000以上の時実行 処理7*/
}
}
#include <stdio.h>
void main()
{
float a, b, c;
printf("今の体重は?[kg]");
scanf("%f", &a);
printf("目標体重は?[kg]");
scanf("%f", &b);
c = (a-b) * 7500;
printf("あなたはあと%fkcal消費する必要があります.¥n", c);
if ( c < 0 ) {
printf("ビリーとトレーニングする必要はありません¥n");
}
if ( c < 2500 ) {
printf("ビリーと1週間くらい運動だね¥n");
}
if ( c < 10000 ) {
printf("ビリーと1ヵ月頑張ってみよう¥n");
}
if ( c < 20000 ) {
printf("ビリーと2ヵ月頑張ってみよう¥n");
}
if ( c < 30000 ) {
printf("ビリーと3ヵ月頑張ってみよう¥n");
}
if ( c < 40000 ) {
printf("ビリーと4ヵ月頑張ってみよう¥n");
}
if ( c >= 40000 ) {
printf("やっぱり食生活から見直そう¥n");
}
}
なぜダメなのかを考えてみよう!!
#include <stdio.h>
void main()
{
float a, b, c;
printf("今の体重は?[kg]");
scanf("%f", &a);
printf("目標体重は?[kg]");
scanf("%f", &b);
c = (a-b) * 7500;
printf("あなたはあと%fkcal消費する必要があります.¥n", c);
if ( c < 0 ) {
printf("ビリーとトレーニングする必要はありません¥n");
}
if ( 0 <= c && c < 2500 ) {
printf("ビリーと1週間くらい運動だね¥n");
}
if ( 2500 <= c && c < 10000 ) {
printf("ビリーと1ヵ月頑張ってみよう¥n");
}
if ( 10000 <= c && c < 20000 ) {
printf("ビリーと2ヵ月頑張ってみよう¥n");
}
if ( 20000 <= c && c < 30000 ) {
printf("ビリーと3ヵ月頑張ってみよう¥n");
}
if ( 30000 <= c && c < 40000 ) {
printf("ビリーと4ヵ月頑張ってみよう¥n");
}
if (c >= 40000 ) {
printf("やっぱり食生活から見直そう¥n");
}
}
1.何時間,何分,何秒と3つの整数をキーボードから入力すると,秒数に換算して画面に表示するプログラムを組め.(例えば時間,分,秒をそれぞれ 1,30,15と入力すると,5415と画面に表示する.)
2.テストの点数(0点から100点の整数)をキーボードから入力し,その値によって以下の通り,S,A,B,C,Fを画面に表示するプログラムを組め(elseをしっかり用いること).
点数 | 成績 |
90点以上 | S |
80点以上90点未満 | A |
70点以上80点未満 | B |
60点以上70点未満 | C |
60点未満 | F |
3.整数nをキーボードから入力し,まずnの正負を判断し,次に偶数か奇数かを判定し,画面に出力するプログラムを組め.(0を入力した時には「入力された数は0です」と画面に出力しよう)
4.西暦を入力し,うるう年かどうかを判定するプログラムを組め.(4で割り切れ,かつ100では割り切れない年,もしくは400で割り切れる年がうるう年.)
5.整数1~40のどれかの数を入力すると,それが3の倍数もしくは3のつく数字の場合は「アホ」と,それ以外は「正常」と表示されるようプログラムを組め.
6.A君とBさんがじゃんけんをする.グー=1,チョキ=2,パー=3として,A君とBさんの手をそれぞれ入力すると,A君とBさんのどちらが勝ったのかを判定するプログラムを組め.
7.1日の作業時間を入力し,アルバイト料を求めるプログラムを組め.基本は7時間以内で,時間単価は850円である.7時間を越えた場合の計算方式は次の通りである.
・10時間以内の場合
7時間を越えた部分につき,単価900円
・10時間を越えた場合
7時間を越えた部分は単価900円,10時間を越えた部分は単価1000円として計算する.そして全体を1.2倍する.