はじめての C
1 から 100 までの数を足して 合計のみを表示するプログラムを作成せよ。
- /* tasizan */
- #include
- main()
- {
- int x, i;
- x = 0;
- printf("1 から 100 までの数を足すと?\n\n");
- for ( i = 0; i <= 100; i++ ) {
- x = x + i;
- }
- /* 合計の表示はループを抜けた後で */
- printf("合計は %d です。\n", x);
- }
900000円の中古車をローンで買った。金利は複利で年3%である。毎月の支払い限度額を20000円としたら
支払いには何年かかるのか ?
そして 毎月の返済額はいくらか ? を
表示するプログラムをつくること。
変数は下の4つ
- x : 中古車の価格
- y : 支払い期間 (年)
- p : 月払いの限度額
- q : 1ヶ月の支払い額
- /* hensai */
- #include
- main()
- {
- int x, y, p, q;
- x = 900000;
- p = 20000;
- printf("中古車の価格 : 900000円\n");
- printf("毎月の支払い限度額 : 20000円\n");
- printf("金利 : 複利で年3%\n\n");
- printf("返済には何年かかるの? それに毎月の支払い額はいくらなの?\n\n");
- for ( y = 1 ; ; y = y + 1 ) {
- x = x * 1.03;
- q = x / (y * 12);
- if (p >= q) {
- break;
- }
- }
- /*1ヶ月の支払い額(q)が限度額(p)を上回ったらループを抜ける */
- printf("支払いには %d 年かかります。\n, y");
- printf("毎月の返済額は %d 円になります。\n, q");
- }
ループを抜けた時点では変数 q は p を上回ってるけど、for文は実行されずに終了するのだから、変数 q (それに変数 y も) はループを抜ける直前の数値になる。
↑これでよかった ?
あと、for文に含まれる if文の条件は
- この条件でプログラムを実行せよ、ただし
- 条件が満たされなくなった時点で for文を抜ける
というこのなので 普通の if文の条件とは性格が違う(条件のなかに含まれる変数値が変化する)。
上の例でいえば、支払い額(q)が限度額(p)を上回ったら というところで
if (p < q) {
と書いてしまいそうになるので注意 !!
break の前の if文の条件は
- (for文の)実行条件であって
- for文を抜ける(breakする)条件ではない
ということですネ。
text: 金山典世さん(稚内北星)のページ