第4回:関数

ポインタは,一旦おいておいて,今日からは関数を取り上げます.

C言語の関数の役割は,プログラムで頻繁に使われる部分を,一つのグループとして扱いやすくする仕組みです.

ポインタは,関数の中でまた出てきますから,よく復習しておいてください.


関数の考え方

材料(引数)を渡すと,レシピ(関数の定義)に基づいて調理し,料理(戻り値)を届けてくれる.


例:二つの数を入力すると,その和を返す関数

#include <stdio.h>

int wa(int c, int d)    //二つの数の和を求める関数の定義
{
    int x;

    x = c + d;

    return x;
}

void main()
{
    int a, b, sum;

    printf("一つ目の数を入力してください:");
    scanf("%d", &a);
    printf("二つ目の数を入力してください:");
    scanf("%d", &b);

    sum = wa(a, b);        //関数を呼び出す

    printf("二つの数の和は,%dです.",sum);
}

引数と戻り値

ここでは,混乱しないように関数の引数を

int wa(int c, int d)

と定義したが,

int wa(int a, int b)

とすると,関数の定義はどのようにしたらよいか,考えてみよう.


例:戻り値を持たない関数

#include <stdio.h>

void wanohyouji(int a, int b)    //二つの数の和を求め表示する関数の定義
{
    int x;

    x = a + b;

    printf("二つの数の和は,%dです.", x);
}

void main()
{
    int a, b, sum;

    printf("一つ目の数を入力してください:");
    scanf("%d", &a);
    printf("二つ目の数を入力してください:");
    scanf("%d", &b);
  
    wanohyouji(a, b);
}

演習

三角形

レベル1:三角形の底辺の長さと高さを入力する時,面積を求めて戻す関数を作成せよ

レベル2:三角形の三つの点の座標を与えると,三角形を描く関数を作成せよ

西暦(2002年)などを入力すると,和暦(平成13年)を答える関数を作成せよ.

明治 1868-1911
大正 1912-1925
昭和 1926-1988
平成 1989-2002