スーパーサイエンスハイスクール用資料
C言語入門 (第1回)

平成17年8月4日


簡単なプログラム
#include<stdio.h>             /* この行は必ず書くおまじない */
main()                          /* 次からメインのプログラムですよ */
{                               /* 中カッコの中がプログラム本体 */
    printf("hello, world\n");   /* hello, world と表示して改行する */
}                               /* ちなみにこれは注釈(コメント)です */


画面に好きな文字を表示するだけのプログラムです。コメントをよく読んでください。
文の最後にはセミコロン(;)を書きます。また、printf()中の文字列の\nは、改行を表します。以下は出力結果。
hello, world
 
 

問題1

画面に以下のような表示を出力するプログラムを書いてみましょう。

Today is Tuesday.
Tomorrow is Wednesday.


変数を使う
#include <stdio.h>

main()
{
    int a, b;    /* 整数型の a,bを宣言 */

    a = 10;      /* 代入。*/
    b = 3;      /*  同上 */
    printf("a = %d\n", a);
                /* a = 10 と表示して改行。%d は、整数 a と置き換わる */
    printf("b = %d\n", b);
                /* b = 3 と表示して改行。%d は、整数 b と置き換わる */
}
変数とは数を入れておける箱のようなものです。
変数を使用するには、(中カッコの中の)一番はじめに宣言を書かねばなりません。変数の名前には、とりあえずアルファベットを使いましょう。上の例にある"a"のような単文字だけでなく、"uchida" や "souseikyouiku" のような長い変数名も使えます。

変数には型があります。
上の例では「int」というのが変数a, bの「型」(int型)です。int型の変数は、整数値だけを表せます。0.5などのように小数を扱いたい場合のために別の型がありますが、ここでは説明しません。


計算をしよう
#include <stdio.h>

main()
{
    int a,b,c,d,e,f,g,h;

    a=10;
    b=3;
    c=a+b ; /* 記号 "+"は足し算を表す. */
    d=a-b ; /* 記号 "-"は引き算を表す. */
    e=a*b ; /* 記号 "*"は掛け算を表す. */
    f=a/b ; /* 記号 "-"は割り算を表す.ただし小数以下は切り捨て */
    printf("c = %d, d = %d, e = %d, f = %d\n", c,d,e,f);
    h = a * b + c ;
    g = a * (b + c);
    printf("h = %d, g = %d\n", h,g); /* h と g は異なる! */
}

問題2
変数 a, b, c にそれぞれ 3,4,7 を代入しておき、(a + b) * c の結果を画面出力させるプログラムを書いてみましょう。
 
 
 
 
 
 


条件分岐をする (if文)
#include <stdio.h>
main()
{
    int a,b;

    a=10;
    b=3;
    if( a > b ){
      printf("a is larger than b\n");    
    }
    else if (b > a ){
      printf("b is larger than a\n");    
    }
    else {
      printf("a is equal to b\n");    
    }
}
if文は、カッコの中の条件が成立していれば、次の中カッコを実行します。条件が成立していない場合は、else以降の中カッコを実行します。必要がなければelse以降は省略することが可能です。
 


問題3

変数 a, b, c にそれぞれ 3,4,7 を代入しておき、もし a + b ==  c  ならば  "Onaji", そうでないならば  a + b の値を画面出力するプログラムを書いてみよう。ただし "=="は、等しいという条件のC言語上での表記です。