陌上花开65 2024-09-21 23:42 采纳率: 90%
浏览 3
已结题

关于c语言的一个报错

#include<stdio.h>

void getMaxAndMin(int arr,int len,int*max,int*min);

int main()
{
    int arr[] = {2,4,21,5,3,6,3,1};
    int len = sizeof(arr)/sizeof(arr[0]);
    int max = arr[0];
    int min = arr[0];
    
    getMaxAndMin(arr,len,&max,&min);
    
    return 0;
}

void getMaxAndMin(int arr[],int len,int*max,int*min)
{
    int i;
    *max = arr[0];
    *min = arr[0];
    
    for(i=1;i<len;i++)
    {
        if(arr[i]>*max)
        {
            *max = arr[i];
        }
        if(arr[i]<*min)
        {
            *min = arr[i];
        }
    }
}

源码如上,想知道为什会报错啊
[Error] invalid conversion from 'int*' to 'int' [-fpermissive]

  • 写回答

3条回答 默认 最新

  • 一轮明月照丘壑 2024-09-21 23:43
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    这个错误发生在你尝试将一个整数指针传递给函数 getMaxAndMin 时,但函数实际上需要一个整数数组作为参数。这是因为你已经定义了一个函数 getMaxAndMin 来接收一个整数数组作为其第一个参数,但是你在调用该函数时只是传递了一个整数指针。当你调用函数 getMaxAndMin 时,你需要传递数组 arr 的地址而不是它的值。但是,在 C 语言中,数组名代表数组首元素的地址,所以你可以直接传递数组名 arr 而不需要使用 &arr 这样的方式来获取地址。因此,你的函数调用应该如下所示:

    getMaxAndMin(arr, len, &max, &min);
    

    此外,你的函数定义和函数调用的参数列表不匹配。在你的函数定义中,你使用了 int arr[] 来接收数组,但在函数声明中你使用了 int arr。为了解决这个问题,你应该在函数声明中使用 int arr[] 来匹配你的函数定义。这是你的代码修复后的样子:

    #include<stdio.h>
    
    void getMaxAndMin(int arr[], int len, int* max, int* min); // 使用 int arr[] 而不是 int arr
    
    int main() {
        int arr[] = {2, 4, 21, 5, 3, 6, 3, 1};
        int len = sizeof(arr) / sizeof(arr[0]);
        int max = arr[0]; // 使用 max 和 min 之前先初始化它们,尽管在此例中这可能不必要
        int min = arr[0]; // 同上
        
        getMaxAndMin(arr, len, &max, &min); // 使用正确的函数调用语法传递数组名 'arr'
        
        printf("Maximum value is %d\n", max); // 打印最大值
        printf("Minimum value is %d\n", min); // 打印最小值
        return 0;
    }
    
    void getMaxAndMin(int arr[], int len, int* max, int* min) { // 定义函数接收一个整数数组参数而不是一个整数指针参数
        // 函数体保持不变...
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月30日
  • 已采纳回答 9月22日
  • 创建了问题 9月21日

悬赏问题

  • ¥15 vue请求不到数据,返回状态200,数据为html
  • ¥15 访问url时不会自动调用其 Servlet的doGet()
  • ¥15 用白鹭引擎开发棋牌游戏的前端为什么这么难找
  • ¥15 MATLAB解决问题
  • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?
  • ¥15 关于#c##的问题:treenode反序列化后获取不到上一节点和下一节点,Fullpath和Handle报错
  • ¥15 一部手机能否同时用不同的app进入不同的直播间?
  • ¥20 输入import torch显示Intel MKL FATAL ERROR,系统驱动1%,: Cannot load mkl_intel_thread.dll.
  • ¥15 点云密度大则包围盒小
  • ¥15 nginx使用nfs进行服务器的数据共享