您的位置:首页 > 编程语言 > C语言/C++

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

2019-08-05 21:13 176 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_39397165/article/details/98519369

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

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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐