例7-7原题:将1个3x2的矩阵存入1个3x2的二维数组中,找出最大值以及它的行下标和列下标,并输出该矩阵。
题目给出的测试数据
3 2
10 -9
6 -1
我的代码:
#include<stdio.h>
int main()
{
int a[3][2];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
int max=a[0][0],h=0,l=0;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
if(a[i][j]>max)
{
max=a[i][j];
h=i;
l=j;
}
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("%d ",a[i][j]);
if((j+1)%2==0)
printf("\n");
}
}
printf("max=a[%d][%d]=%d\n",h,l,max);
}
课本给出的代码:
#include<stdio.h>
int main()
{
int col,i,j,row;
int a[3][2];
//将输入的数存入二维数组
printf("Enter 6 integers:\n");
for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
//按矩阵的形式输出二维数组 a
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%4d",a[i][j]);
printf("\n");
}
//遍历二维数组,找出最大值a[row][col]
row=col=0;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
if(a[i][j]>a[row][col])
{
row=i;
col=j;
}
printf("max=a[%d][%d]=%d\n",row,col,a[row][col]);
return 0;
}
因为比较简单我就不写解释了