C言語プログラム 第5回 本日のメニュー 2015.10.28 • if 文 List3-1 (教科書42ページ) • if 文 else 文 List3-5 (教科書46ページ) List3-6 (教科書48ページ) ★ • 演習問題 5(Ex5) ★ ★:プログラム作成・提出 前回の復習 • 実数の読み込み scanf(“%lf”, &x); • 実数の表示 printf(“%f”,123); 正しく表示されない! printf(“%f”,123.0); これが正しい! • 書式化 printf(“%.3f”, x); 小数点以下3桁表示 printf(“[%8.3f]”,123.5); 表示結果 [ 123.500] 小数点以下3桁 全体の表示に8桁使う プログラムの流れの分岐 if 文 if (式) 文 条件が正しければ文を実行する 式の値が0でなければ,文を実行する. (0以外) 式の評価 !=0 Yes (0以外) 真:1 文の実行 真(true):1 偽(false): 0 No (0) 偽:0 if (式) 文1 else 文2 式の値が0でなければ,文1を実行する. そうでなければ(0なら),文2を実行する. 式の評価 !=0 条件が正しければ 文1を実行する No (0) 偽:0 Yes (0以外) 真:1 文1の実行 文2の実行 条件が正しくなけれ ば文2を実行する List3-1 #include <stdio.h> int main(void) { int vx; printf(“整数を入力して下さい:”); scanf(“%d”, &vx); if (vx % 5) puts(“その数は5で割り切れません.”); return(0); } vx%5 が 0 でなければ, 文章を表示する. List3-5 #include <stdio.h> int main(void) { int num; printf(“整数を入力して下さい:”); scanf(“%d”, &num); if (num) puts(“その数は0ではありません.”); else puts(“その数は0です.”); return(0); } if (num) puts(“その数は0ではありません.”); else puts(“その数は0です.”); List3-6 ★ 入力する2つの値が等しい時と等しくない時の2通りを実行し 2通りの結果を提出せよ. #include <stdio.h> int main(void) { int x1, x2; printf(“二つの整数を入力して下さい:”); printf(“整数1:”); scanf(“%d”, &x1); printf(“整数2:”); scanf(“%d”, &x2); if (x1 == x2) puts(“それらは同じ値です.”); else puts(“それらの値は違います”); return(0); } a == b aとbが等しければ真(1) 等しくなければ偽(0) 等価演算子 a == b a != b aとbが等しければ真(1),等しくなければ偽(0) aとbが等しくなければ真(1),等しければ偽(0) 関係演算子 a a a a < b > b <= b >= b aがbより小さければ真(1),そうでなければ偽(0) aがbより大きければ真(1),そうでなければ偽(0) aがbより小さいか等しければ真(1),そうでなければ偽(0) aがbより大きいか等しければ真(1),そうでなければ偽(0) 演習課題5 (Ex5) ★ 下記に示すように,3人のテスト結果(0~100点)を読み込んで, 平均点を求め,平均点以上の点であれば合格,平均点未満 の点であれば不合格と表示するプログラムを作成せよ. ただし,テスト結果は整数型(int)で読み込み,平均点は実数 型(double)で求め小数点以下1桁を表示する. 3人のテスト結果を入力して下さい. Aさん: 90 Bさん: 55 Cさん: 63 3人の平均点は 69.3 点です. Aさん: 合格 Bさん: 不合格 Cさん: 不合格 double average; average=(A+B+C)/3.0; あるいは average=(double)(A+B+C+)/3; #include <stdio.h> int main(void) { int n_a, n_b, n_c; double average; 演習課題5のヒント puts(“3人のテスト結果を入力して下さい.”); /* printf(“3人のテスト結果を入力して下さい.¥n”); */ printf(“Aさん:”); scanf(“%d”, &n_a); printf(“Bさん:”); scanf(“%d”, &n_b); printf(“Cさん:”); scanf(“%d”, &n_c); average=(n_a + n_b + n_c)/3.0; /* average = (double) (n_a +n_b + n_c)/3 */ printf(“3人の平均点は %.1f 点です.¥n”, average); if文を使って場合に分けて表示する AAA return(0); }
© Copyright 2024 Paperzz