编辑代码

#include <stdio.h>
    int max(int a, int b);
    void fun0(int a);
    /*
        返回两个数比较小的数据
    */
    int min(int a, int b) {
    return a < b ? a : b;
    }
    /*
        参数a赋值为0时直接结束函数
    */
    void fun(int a) {
    if (a == 0) {
    return;
    }
    printf("a = %d\n", a);
    }

    int main () {
    /*
        函数的定义(创建、声明)
            原型:
                返回值数据类型 函数名(参数类型) {
                    若干代码
            }
        函数的调用
            原型:
                函数名(数据或者变量);
        形参:就是参数类型
        实参:就是传递给函数的实际数据或者变量
    函数返回值
        1.return可以将函数的运行结果返回给调用处
        2.return可以用于结束函数
            此时函数是无返回值的
            返回值类型处要写void
    函数的声明
        原型:
            返回值类型 函数名(形参列表);
        编写位置和使用情况:
            1.要写在头文件下面
            2.用到函数声明时
                通常都是把函数定义在main的下方
    函数的递归调用
        函数代码中有一行代码是调用自己
        数组作为函数参数
    一维数组的情况
        创建函数
        返回值类型 函数名(数据类型 数组名[]) {
        若干代码
        }
    调用函数
        函数名(数组名);
    二维数组的情况
        创建函数
        返回值类型 函数名(数据类型 数组名[][列大小]){
        若干代码
        }
    调用函数
        函数名(数组名);

    */
    int a = 3, b = 7;
    int c = min(a, b);
    printf("c = %d\n", c);

    fun(0);

    c = max(a, b);
    printf("c = %d\n", c);

    fun0(5);

    int arr[] = {0, 3};
    fun1(arr, 2);

    int arr0[2][2] = {3, 1, 0, 2};
    fun2(arr0);
    return 0;
    }  
    /*
    比较两个数的大小
    返回比较大得数据
    */
    int max(int a, int b) {
    return a > b ? a : b;
    }
    /*
    递归调用
    */
    void fun0(int a) {
    if (a != 0) { 
    a--;
    printf("a = %d\n", a);
    fun0(a);
    }
    }
    /*
    打印数组中每一个元素
    */
    void fun1(int arr[], int num) {
    for(int i = 0; i < num; i++) {
    printf("arr[%d] = %d\n", i, arr[i]);
    }
    }
    /*
    打印二维数组中每一个元素的值
    */
    void fun2(int arr[][2]) {
    for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 2; j++) {
    printf("arr[%d][%d] = %d\n", i, j, arr[i][j]);
    }
    }
    }