#include <stdio.h>

void rev_array(int array[],  int n);

int main(){

    int n;
    printf("Enter the number of elements in the array:");
    scanf("%d", &n);
    int array[n];

    for(int i=0; i<n; i++){
        printf("Enter the element %d:", i+1);
        scanf("%d", &array[i]);
    }

    rev_array(array[n], n);
    return 0;
}

void rev_array(int array[],  int n){
    for(int i=(n-1); i>-1; i--){
        printf("%d", array[i]);
    }
}

当我try 运行代码时,

Test_Code.c:在函数'main'中: Test_Code.c:17:15:警告:传递"rev_array"的参数1会使指针从整数转换而不进行强制转换[-Wint-conversion] int n = array[n]; ^~~~~ Test_Code.c:3:6:注意:应为"int *",但参数的类型为"int" int [] nums = nums(int n,int n); ^~~~~~~~~

推荐答案

您试图传递数组的单个元素(array[n]),但函数rev_array需要一个array.您应该不带索引地传递整个array.

#include <stdio.h>

void rev_array(int array[], int n);

int main() {

    int n;
    printf("Enter the number of elements in the array:");
    scanf("%d", &n);
    int array[n];

    for(int i = 0; i < n; i++) {
        printf("Enter the element %d:", i + 1);
        scanf("%d", &array[i]);
    }

    rev_array(array, n); // Corrected the function call
    return 0;
}

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

C++相关问答推荐

C限制限定符是否可以通过指针传递?

%p与char* 等组合缺少的GCC Wform警告

Apple Libm的罪恶功能

gcc已编译的可执行文件TSB是否同时暗示最低有效字节和最低有效位?

exit(EXIT_FAILURE):Tcl C API类似功能

C/SDL程序,渲染不使用我的渲染器

GLIBC:如何告诉可执行文件链接到特定版本的GLIBC

Clang警告称,`ffi_type`与`sizeof`不兼容

tick.q中的Kdb+键控表语法

在C中访问数组中的特定值

如何在GDB中查看MUSL的源代码

将多项式从文件.txt加载到终端时出现问题

链接器脚本和C程序使用相同的头文件,这可能吗?

解密Chrome加密密钥

即使客户端不发送数据,也会发生UNIX套接字读取

GCC认为这是一个VLA是对的吗?

既然我们在 if 中将 int 的值更改为 10,为什么在第二个 fork 后,子进程及其创建的子进程都会打印 33 ?

使用 _Atomic float 时,MSVC 编译的代码会命中调试断言

在链表中插入一个值

可以从指针数组中的值初始化指针吗?