C语言--实现找出3x3矩阵里行最大同时列最小的数所在的行和列

首先先说一下二维数组的传参,有三种模式

1.形参为二级指针

函数定义:

    void function(int **arry, int col);// col为列宽度

函数调用:

    function((int **)arry);

在函数中使用:

    *(int *)arry+rows*col+cols  ; 

2.形参为数组指针

函数定义:

    void function(int*arry)[], int col);// col为列宽度

函数调用:

    function(arry);  //直接输入数组名就可以了

在函数中使用:

    *(int *)arry+rows*col+cols;
    *(a[rows]+cols);
    *(*(a+rows)+rols);

2.形参为二维数组

函数定义:

    void function(int arry[][n]);// col为列宽度

函数调用:

    function(arry);  //直接输入数组名就可以了

在函数中使用:

    *(int *)arry+rows*col+cols;
    *(a[rows]+cols);
    *(*(a+rows)+rols);

下面实现找出3x3矩阵里行最大同时列最小的数所在的行和列

// arry 矩阵  row: 行  col: 列  Rrow:  返回行  Rcol:  返回列

void FoundMaxRowMinCol(int **arry,int row,int col,int *Rrow,int *Rcol)
{
    //先判断数组是否为空
    if(arry==NULL)
    {
        return False;
    }
    int i=0,j=0;
    int Number=0;
    for(i=0;i<row;i++)
    {
        for(j=0;j<col;j++)
        {
            if(*((int *)arry+i*col+j)>Number)  //先找出行最大
            {
                Number=*((int *)arry+i*col+j;
                *Rrow=i;
                *Rcol=j;                      
            }
        }
        //再判断是不是列最小
        for(int k=0;k<row;k++)
        {
            if(*((int *)arry+k*col+*Rcol)<Number)
              break; //跳出循环
            if(k=row-1)
            printf("%d, %d\n", *row, *col);
        }
    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值