授業の資料 if文 if else 文

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); }