You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言使用int类型函数返回数组最大值报错及不输出问题求助

错误原因
  • 核心错误出现在main函数末尾的printf(largestNum)语句:
    1. largestNum是函数名,本身代表函数的内存地址,属于函数指针类型,不是函数执行后的返回值。你之前调用的largestNum(&count, numbersArr)没有保存返回结果,相当于计算出最大值后直接丢弃了。
    2. printf的第一个参数要求传入格式控制字符串,输出int类型的值必须搭配%d占位符,直接传入函数指针会触发类型不匹配报错,你看到的指针类型冲突提示就是由此导致的。
修复方法

将main函数末尾的两句代码:

largestNum(&count, numbersArr);
printf(largestNum);

替换为以下任意一种写法即可:
写法1(先存储返回值再输出,可读性更高):

int max = largestNum(&count, numbersArr);
printf("%d", max);

写法2(直接在printf中调用函数):

printf("%d", largestNum(&count, numbersArr));
修复后完整可运行代码
int largestNum(int *length,int numberArr[]){
    int largestNumber = numberArr[0];
    for(int x = 1;x < *length;x++){
        if (numberArr[x] > largestNumber)
            largestNumber = numberArr[x];
    }
    return largestNumber;
} 

int main(){
    int numbersArr[100];
    int input;
    int num;
    int count = 0;

    printf("Input total number of elements (1-100): ");
    scanf("%d", &num);

    for(int x = 0; x < num; x++){
        printf("Element %d - ", count);
        scanf("%d", numbersArr + x);
        count++;
    }

    int max = largestNum(&count, numbersArr);
    printf("%d", max);

    return 0;
}

内容的提问来源于stack exchange,提问作者SimTim124

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:36:09