6.1 KiB
6.1 KiB
title | author | date | url | wordtwit_post_info | categories | |||
---|---|---|---|---|---|---|---|---|
『[新版C言語プログラミングレッスン 入門編』 第四章 if | kazu634 | 2008-03-23 | /2008/03/23/_922/ |
|
|
つづきだよー
論理和「||」
#include <stdio.h> #include <stdlib.h> #define MAX_LINE 128 /* 入力行の最大長 */ int main(void); int main(void) { char buf[MAX_LINE]; int n; printf ("降水確率を入力してください。\n"); gets(buf); n = atoi(buf); printf ("降水確率は %d %%です。\n", n); if (n < || 100 < n) { printf ("降水確率は0 - 100の間ですよ。\n"); } else if (n >= 50) { printf ("傘を忘れずにね。\n"); } else { printf ("傘はいりません。\n"); } printf ("いってらっしゃい\n"); return(); }
or は「||」で表現する。
現在の時間を入力してもらって、それに応じたメッセージを表示させる
#include <stdio.h> #include <stdlib.h> #define MAX_LINE 128 /* 入力行の最大長 */ int main(void); int main(void) { char buf[MAX_LINE]; int n; printf ("現在の時刻(「時」だけでよい)を教えてください。\n"); gets(buf); n = atoi(buf); if (n < || 24 < n) { printf ("Hour must be:\n 0 <= hour <= 24\n"); } else if ( <= n && n <= 11) { printf ("おはようございます。\n"); } else if (n == 12) { printf ("お昼です。\n"); } else if (13 <= n && n <= 18) { printf ("こんにちわ。\n"); } else if (19 <= n && n <= 23) { printf ("こんばんわ。\n"); } return(); }
境界にあたる場合の条件に注意。自分の場合、「=」をつけ忘れていた。
ここまでで Perl と違うと思った部分
- 必ず main から始まる
- 変数の方を最初に宣言しなければならない
- Perl だとコンテクストに応じて様々な姿を変数はとるけれど、 C だと自分で型を変換しなければならない(→ atoi )
- C の char 型は一文字しか格納できない。だから配列として宣言して文字列を格納している…ようだ
自分は Perl のコンテクストみたいな考えの方が好きかもしれない。