#include <stdio.h>
// 平均を計算する関数
float calculateAverage(float a, float b) {
return (a + b) / 2.0;
}
int main() {
float num1 = 10.5, num2 = 20.3;
printf("Average: %.2f\n", calculateAverage(num1, num2));
return 0;
}
解説:
float calculateAverage(float a, float b): 引数aとbを受け取り、その平均を返します。
戻り値の型はfloatで指定されており、小数点以下を含む結果を返します。
3. 応用的なユーザー定義関数の設計
3.1 配列の合計を計算する関数
例:配列とそのサイズを引数として受け取る
#include <stdio.h>
// 配列の合計を計算する関数
int calculateSum(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum;
}
int main() {
int numbers[] = {1, 2, 3, 4, 5};
int size = sizeof(numbers) / sizeof(numbers[0]);
printf("Sum of array: %d\n", calculateSum(numbers, size));
return 0;
}
解説:
int calculateSum(int arr[], int size): 配列とそのサイズを引数として受け取ります。
forループで各要素を合計します。
4. ユーザー定義関数を使用する際のポイント!
名前の付け方:関数の役割が明確にわかる名前を付ける。
引数リスト:必要な情報だけを渡すように設計する。
戻り値:関数の結果が明確になるように適切な型を指定する。
5. 練習問題
以下の課題に挑戦して、ユーザー定義関数の設計と実装を練習しましょう。
整数を引数として受け取り、それが偶数か奇数かを判定する関数を作成してください。
2つの整数を引数として受け取り、その最大公約数を返す関数を作成してください。
文字列を引数として受け取り、その長さを返す関数を作成してください。
6. 練習問題の解答と解説
問1の解答
#include <stdio.h>
// 偶数か奇数を判定する関数
void checkEvenOdd(int num) {
if (num % 2 == 0) {
printf("%d is even.\n", num);
} else {
printf("%d is odd.\n", num);
}
}
int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);
checkEvenOdd(number);
return 0;
}