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

矩阵每行最小值提取代码报错:参数数量及类型不兼容问题排查

问题分析与修复

错误根源

你遇到的两个错误都出在search_min函数的调用环节:

  • 参数数量不足:search_min定义时明确需要两个参数(行指针和行长度),但你调用时只传了一个参数。
  • 实参类型不兼容:你传入的z[i][j]是矩阵里单个int类型的元素,而函数第一个参数要求的是int*(指向整行的指针),类型完全不匹配。
  • 额外逻辑错误:你在每行的循环里嵌套了j的循环,这会导致每行重复调用search_min m次,重复输出同一个最小值,完全没必要。

修复后的完整代码

#include <iostream>

using namespace std;

int search_min(int* arr, int size) {
    int min = arr[0];
    for (size_t i = 1; i < size; ++i) {
        if (arr[i] < min) {
            min = arr[i]; 
        }  
    }
    return min;
}

int main()
{
    setlocale(0, "rus");

    int n, m, z[100][100];
    cout << " Enter the size of the matrix: \n";
    cin >> n >> m;

    cout << " Fill in the matrix: \n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cin >> z[i][j];
        }
    }

    cout << "The introduced matrix:" << endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout << z[i][j] << " "; 
           
        } 
         cout << endl;
       
    }

    cout << "The minimum element of each row of the matrix:" << endl;
    // 修复:去掉多余的内层循环,每行仅调用一次search_min
    for (int i = 0; i < n; i++)
    {
        // 传入第i行的指针z[i],以及行长度m
        cout << search_min(z[i], m) << endl;
    }

    cin.get();
    return 0;
}

核心修改说明

  1. 补全search_min的调用参数:传入z[i](二维数组的行名可隐式转换为指向该行首元素的int*指针)和行长度m,满足函数的参数要求。
  2. 删除多余的内层j循环:每行只需要调用一次search_min即可获取最小值,无需循环m次重复调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:35:08