输入一个数组,怎样实现数组的逆序输出

通过调用自定义函数,实现输入一个一维数组的5个元素,将其逆序输出

#include <stdlib.h>
 
void reverse(int arr[], int n) {    
    int i, temp;    
    for (i = 0; i < n / 2; i++) {    
        temp = arr[i];    
        arr[i] = arr[n - i - 1];    
        arr[n - i - 1] = temp;    
    }    
    
} 

int main()
{
    int n = 5;
    int arr[5];    
    for (int i = 0; i < 5; i++) scanf("%d", & arr[i]);
    reverse(arr, n);    
  
    for (int i = 0; i < n; i++) {    
        printf("%d ", arr[i]);    
    }
    printf("\n");  
}

可以参考一下我的文章,数组那块的思考题,里面有说明,觉得不错的话可以点个赞和关注,持续分享嵌入式知识

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

#define N 20

int main(int argc, char *argv[])
{
        char arr[N] = {0};
        int i, j, n, ch;

        printf("请输入:");
        gets(arr);

        n = strlen(arr);
        i = 0;
        j = n-1;
        while (i < j) {
                ch = arr[i];
                arr[i] = arr[j];
                arr[j] = ch;
                i++;
                j--;
        }

        puts(arr);

        return 0;
}

参考如下:

#include<stdio.h>

void reverse(int a[], int len)
{
    int i, temp;
    for (i = 0; i <= len / 2 ; i++)
    {
        temp = a[i];
        a[i] = a[len - i - 1];
        a[len - i - 1] = temp;
    }
}

int main()
{
    int a[] = {8, 6, 5, 4, 1}, i;
    int len = sizeof(a) / sizeof(a[0]); 
    printf("before : ");
    for (i = 0; i < len; i++)
        printf("%d ", a[i]);
    printf("\n");
    
    reverse(a, len);

    printf("after  : ");
    for (i = 0; i < len; i++)
        printf("%d ", a[i]);

    return 0;
}
 

参考代码

#include <stdio.h>

void resolve_print(int arr[], int n) {
    for (int i = n - 1; i >= 0; i--) {
        printf("%d", arr[i]);
    }
    printf("\n");
}

int main() {
    int data[] = {1, 2, 3, 4, 5};
    resolve_print(data, 5);
    return 0;
}