blog/content/post/2008/03/23/2008-03-23-00000857.md

6.0 KiB
Raw Blame History

title author date wordtwit_post_info categories
『[新版C言語プログラミングレッスン 入門編』 第四章 if kazu634 2008-03-23
O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:3867;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}
C
Programming

 つづきだよー

論理和「||」

#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 のコンテクストみたいな考えの方が好きかもしれない。