编写子函数的程序通常遵循以下步骤:
定义子函数
确定子函数的返回类型。
定义子函数的名称和参数列表。
在函数体内编写实现子函数功能的代码。
调用子函数
在主函数或其他需要的地方调用子函数,并传入适当的参数。
处理子函数返回的结果。
示例1:计算阶乘
```c
include
// 子函数声明
long c(int x);
int main() {
int x = 5;
printf("Factorial of %d is %ld\n", x, c(x));
return 0;
}
// 子函数定义
long c(int x) {
if (x <= 1) {
return 1;
}
return x * c(x - 1);
}
```
示例2:判断两个数的符号是否相同
```c
include
// 子函数声明
char f(float a, float b);
int main() {
float num1 = 5.5;
float num2 = -3.2;
if (f(num1, num2) == 'Y') {
printf("The signs of %f and %f are the same.\n", num1, num2);
} else {
printf("The signs of %f and %f are different.\n", num1, num2);
}
return 0;
}
// 子函数定义
char f(float a, float b) {
if (a * b >= 0) {
return 'Y';
} else {
return 'N';
}
}
```
示例3:找出一维数组元素中的最小值及其下标
```c
include
// 子函数声明
int min(int a[], int n);
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int n = sizeof(arr) / sizeof(arr);
int min_value = arr;
int min_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] < min_value) {
min_value = arr[i];
min_index = i;
}
}
printf("The minimum value is %d at index %d\n", min_value, min_index);
return 0;
}
// 子函数定义
int min(int a[], int n) {
int min_value = a;
int min_index = 0;
for (int i = 1; i < n; i++) {
if (a[i] < min_value) {
min_value = a[i];
min_index = i;
}
}
return min_value;
}
```
示例4:递归计算斐波那契数列的第n个数字
```c
include
// 子函数声明
int fibonacci(int n);
int main() {
int n = 10;
int result = fibonacci(n);
printf("The %dth number in Fibonacci sequence is: %d\n", n, result);
return 0;
}
// 子函数定义
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
```
示例5:判断一个数是否是素数