其他分享
首页 > 其他分享> > 1160矩阵的最大值(指针专题)

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){
//在m
n矩阵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