C言語の関数は、処理をひとまとめにして何度も呼び出せる仕組みです。 プログラムの再利用性・可読性を高めるために使います。
| 名称 | 役割 | 書く場所 | 例 |
|---|---|---|---|
| 関数宣言(プロトタイプ宣言) | 関数があることをコンパイラに知らせる | mainより上 | int add(int a, int b); |
| 関数定義 | 実際の処理内容を書く | mainより下でもOK | int add(int a, int b) { return a + b; } |
| 種類 | 意味 | 例 |
|---|---|---|
| 仮引数(parameter) | 関数の受け取り側の変数 | int add(int a, int b) の a,b |
| 実引数(argument) | 関数を呼び出すときに渡す値 | add(3, 5) の 3,5 |
関数に変数のアドレス(場所)を渡すことで、呼び出し元の値を直接変更できます。
C言語の関数には、値を返す関数と値を返さない手続き(void関数)の2種類があります。
| 分類 | 説明 | 例 |
|---|---|---|
| 宣言(プロトタイプ) | 関数の存在を知らせる | int add(int a, int b); |
| 定義 | 実際の処理を書く | { return a + b; } |
| 実引数/仮引数 | 呼び出す値と受け取る変数 | add(3, 5) / int add(int a, int b) |
| 値渡し | 値のコピーを渡す。元の変数は変わらない | |
| ポインタ渡し | アドレスを渡す。元の変数が変わる | |
| 戻り値 | 処理結果を返す(returnを使う) | |
| void関数 | 戻り値なしの手続き(画面出力など) |
3科目の点数を入力し、平均点を返す関数と、その平均に応じて評価(A〜D)を返す関数を作れ。
例 入力: 80 70 90 出力: (平均値と評価)
配列とその要素数を受け取り、最大値と最小値をポインタ経由で返す関数を作れ。
例 入力: {3, 9, 2, 5} 出力: 最大値=9, 最小値=2
整数配列と要素数を引数に受け取り、平均値を求めて、その平均より大きい要素だけを出力する関数を作れ。
例 入力: {60, 80, 70, 90} 出力: 平均より大きい値 → 80, 90
文字列と文字を受け取り、その文字がいくつ含まれているか数える関数を作れ。
例 入力: “banana”, 文字 'a' 出力: 文字 'a' は 3 個含まれています
以下の関数を組み合わせて、5人の点数から平均・最高・最低を出力するプログラムを作れ。
例 入力: {70, 85, 60, 90, 75} 出力: 平均=76, 最高=90, 最低=60