求任意的一个m×m矩阵的最大数及其所在的行列数
输入格式:
从键盘输入m(2<=m<=20)及矩阵元素(只考虑int型)。
输出格式:
输出数组中最大数及最大数所在行、列
输入样例:
3
8 6 2
5 7 1
4 9 5
输出样例:
max=9,i=2,j=1
正确答案(Ai注释):
#include "stdio.h" // 包含标准输入输出库,用于进行输入输出操作
int main() // 程序的主函数入口
{
int m,i,j,max1,max2,p; // 声明整型变量m(矩阵的大小),i和j(循环变量),max1和max2(最大值的行和列索引),p(用于存储当前最大值)
scanf("%d",&m); // 从标准输入读取一个整数,赋值给变量m,表示矩阵的大小
int juzhen[m][m]; // 声明一个m*m的整型二维数组juzhen,用于存储矩阵的元素
// 读取矩阵元素
for(i=0;i<m;i++) // 外层循环,遍历矩阵的每一行
{
for(j=0;j<m;j++) // 内层循环,遍历矩阵的每一列
{
scanf("%d",&juzhen[i][j]); // 读取一个整数,存储到矩阵的第i行第j列
}
}
p=juzhen[0][0]; // 将矩阵的第一个元素赋值给p,作为初始的最大值
max1=0; // 最大值的行索引初始化为0
max2=0; // 最大值的列索引初始化为0
// 寻找矩阵中的最大值及其位置
for(i=0;i<m;i++) // 外层循环,遍历矩阵的每一行
{
for(j=0;j<m;j++) // 内层循环,遍历矩阵的每一列
{
if(juzhen[i][j]>p) // 如果当前元素大于p(当前最大值)
{
p=juzhen[i][j]; // 更新p为当前元素的值
max1=i; // 更新最大值的行索引为当前行
max2=j; // 更新最大值的列索引为当前列
}
}
}
printf("max=%d,i=%d,j=%d",p,max1,max2); // 输出最大值及其位置
return 0; // 程序正常结束
}