实现数组的逆输出,为什么这种算法逆输出只能输两个

哪位大佬帮忙看一下为什么逆输出不了

img

img

n值在倒置数组的时候变少了,在倒置前一个用一个tem记录n的值,在倒置时用tem不用n

第二个for循环n--改变了n的值,所以最后一个for循环输出是n的值改变了


#include <stdio.h>
#include <string.h>

int main()
{
    int a[20];
    int n, i, t;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i < n / 2; i++)
    {
        t = a[i];
        a[i] = a[n - 1 - i];
        a[n - 1 - i] = t;
    }
    for (i = 0; i < n; i++)
    {
        printf("%d ", a[i]);
    }
    return 0;
}