编写一个自定义函数fun( ),其功能是将一个数组逆序输出。在主函数中,从键盘输入一个一维数组中的5个元素,调用该自定义函数, 运行该程序,将此数组逆序输出

这段代码自定义函数的调用哪里存在问题,为什么运行后无法实现逆序输出

img

见注释,供参考:

img

#include <stdio.h>

void fun(int a[])
{
    for (int i = 0, j = 4; i != j && i < j; i++, j--)
    {
        int temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }
}

int main(void)
{
    int a[5];
    printf("input:");
    for (int i = 0; i < 5; i++)
    {
        scanf("%d", &a[i]);  // 改成 &a[i]
    }
    fun(a);
    printf("逆序后: ");
    for (int i = 0; i < 5; i++)
    {
        printf("%d ", a[i]);
    }
}

逆序输出,数组下标从最大开始,逐渐减小到0