1160矩阵的最大值(指针专题)
作者:互联网
1160矩阵的最大值(指针专题)
题目描述
找出一个2×3的整数矩阵中的最大值及其行下标和列下标,要求调用函数FindMax(int p[][3], int m, int n, int *pRow, int *pCol)实现,行下标和列下标在形参中以指针的形式返回。
void FindMax(int p[][3], int m, int n, int *pRow, int pCol){
//在mn矩阵p中查找最大值,将其行下标存入pRow所指内存单元,将其列下标存入pCol所指内存单元
}
输入
输入2行3列整数,共6个。
输出
输出3个整数,矩阵中的最大值及其行下标和列下标,数据之间用空格隔开。测试数据保证最大值唯一。
样例输入
100 3 6
0 87 65
样例输出
100 0 0
说明
以下几个代码没什么差别,就是在函数传递的值方面有些许不同,因为好奇就想都试试。
代码展示一
#include<stdio.h>
void FindMax(int p[][3],int *pRow,int *pCol); //查找最大值并返回行、列下标
int main()
{
int i,j,a[2][3],pRow,pCol;
//输入数据
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
//利用函数得出最大值下标
FindMax(a,&pRow,&pCol);
//输出最大值及其行列下标
printf("%d %d %d\n",a[pRow][pCol],pRow,pCol);
return 0;
}
void FindMax(int p[][3],int *pRow,int *pCol)
{
int i,j,max,Row,Col;
//定义初始最大值及下标值
max=p[0][0];
Row=0;
Col=0;
//由循环得最大值及其下标
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(p[i][j]>max)
{
max=p[i][j];
Row=i;
Col=j;
}
}
*pRow=Row;
*pCol=Col;
}
代码展示二
#include<stdio.h>
void FindMax(int p[][3],int m,int n,int *pRow,int *pCol);
int main()
{
int i,j,a[2][3],Row,Col;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
FindMax(a,2,3,&Row,&Col);
printf("%d %d %d\n",a[Row][Col],Row,Col);
return 0;
}
void FindMax(int p[][3],int m,int n,int *pRow,int *pCol)
{
int i,j,max;
max=p[0][0];
*pRow=0;
*pCol=0;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(p[i][j]>max)
{
max=p[i][j];
*pRow=i;
*pCol=j;
}
}
}
代码展示三
#include<stdio.h>
void FindMax(int p[][3],int *pRow,int *pCol);
int main()
{
int i,j,a[2][3],Row,Col;
int *pRow,*pCol;
pRow=&Row;
pCol=&Col;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
FindMax(a,pRow,pCol);
printf("%d %d %d",a[*pRow][*pCol],*pRow,*pCol);
return 0;
}
void FindMax(int p[][3],int *pRow,int *pCol)
{
int i,j,max;
max=p[0][0];
*pRow=0; *pCol=0;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(p[i][j]>max)
{
max=p[i][j];
*pRow=i;
*pCol=j;
}
}
}
代码展示四
#include<stdio.h>
void FindMax(int p[][3],int *pRow,int *pCol);
int main()
{
int i,j,a[2][3],Row,Col;
int *pRow,*pCol;
pRow=&Row;
pCol=&Col;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
FindMax(a,pRow,pCol);
printf("%d %d %d",a[Row][Col],Row,Col);
return 0;
}
void FindMax(int p[][3],int *pRow,int *pCol)
{
int i,j,max;
max=p[0][0];
*pRow=0; *pCol=0;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(p[i][j]>max)
{
max=p[i][j];
*pRow=i;
*pCol=j;
}
}
}
标签:1160,int,max,最大值,矩阵,Col,pRow,下标,pCol 来源: https://blog.csdn.net/qq_44004066/article/details/114554959