计算二维数组每行的最大值,每列的最小值

该C程序定义了一个二维数组,然后通过双重循环遍历数组,分别找出每行的最大值和每列的最小值并打印。它使用了两个嵌套的for循环,第一个循环处理行,第二个循环处理列。

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    int a[][2]={1,3,5,6,7,8};
    int line=sizeof(a)/sizeof(a[0]);
    int row=sizeof(a[0])/sizeof(a[0][0]);
    int i,j,max,min;

    for(i=0;i<line;i++)
    {
        for(j=0;j<row;j++)
        {
            if(j==0)
            {
                max=a[i][j];    
            }
            if(max<a[i][j])
            {
                max=a[i][j];
            }

        }
         printf("第%d行的最大值是:%d\n",i+1,max);
    }

    for(i=0;i<row;i++)
    {
        for(j=0;j<line;j++)
        {
            if(j==0)
            {
                min=a[j][i];    
            }
            if(max<a[j][i])
            {
                min=a[j][i];
            }

        }
        printf("第%d列的最小值是:%d\n",i+1,min);
    }


    return 0;
}

结果:

2665a30ceafc0ede1b2dee9e0681f1cf.png

 

 

### 实现思路 为了求解二维数组最大值最小值之差,在遍历过程中维护每一最大值最小值。通过双重循环访问每一个元素,外层循环控制索引,内层循环负责遍历当前的所有行。 ### C++代码实现 下面是一个完整的C++程序用于计算并打印二维数组最大值最小值之间的差异: ```cpp #include <iostream> #include <vector> #include <climits> // For INT_MAX and INT_MIN using namespace std; void columnMaxMinDifference(const vector<vector<int>>& matrix) { int rows = matrix.size(); if (rows == 0) return; int cols = matrix[0].size(); for (int col = 0; col < cols; ++col) { int minVal = INT_MAX; int maxVal = INT_MIN; for (int row = 0; row < rows; ++row) { if (matrix[row][col] < minVal) minVal = matrix[row][col]; if (matrix[row][col] > maxVal) maxVal = matrix[row][col]; } cout << "Column " << col + 1 << ": Difference between max and min is " << maxVal - minVal << endl; } } int main() { int m, n; cin >> m >> n; vector<vector<int>> mat(m, vector<int>(n)); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { cin >> mat[i][j]; } } columnMaxMinDifference(mat); return 0; } ``` 此段代码首先定义了一个辅助函数`columnMaxMinDifference`来处理核心逻辑[^1]。该函数接收一个二维向量作为参数,并逐迭代以找到每内的最大值最小值。之后,主函数`main`负责初始化矩阵以及调用上述辅助函数完成最终输出。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值