用C语言编写“3*3的矩阵中找最大值和最小值并表示所在位置”

程序已经有了,求每一步的程序说明。
#include "stdio.h"
main()
{
int a[4][6]={0},i,j,max,min,h1,h2,l1,l2;
printf("请输入一个3*3矩阵:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
max=min=a[1][1];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(a[i][j]>max){max=a[i][j];h1=i,l1=j;}
if(a[i][j]<min){min=a[i][j];h2=i,l2=j;}
}
printf("最大值为=%d,所在行为 :%d,所在列为 :%d.\n最小值为=%d,所在行为 :%d,所在列为 :%d.\n",max,h1,l1,min,h2,l2);
}

望高手帮忙解答
先谢啦

首先我认为这个程序还是有点小问题的,主函数的类型应该是void,因为如果没规定就会默认为int型的。。。。。
#include "stdio.h"
void main()
{
int a[4][6]={0},i,j,max,min,h1,h2,l1,l2;//这些应该就不用说明了
printf("请输入一个3*3矩阵:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);//输入你所想要的数
}
max=min=a[1][1];//随便先给max,min一个值
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(a[i][j]>max){max=a[i][j];h1=i,l1=j;}
if(a[i][j]<min){min=a[i][j];h2=i,l2=j;} //疆矩阵中的每一个数都与max,min作比较,把比max大的赋给max,并把它的行、列赋给h1,h2。同理可得min

printf("最大值为=%d,所在行为 :%d,所在列为 :%d.\n最小值为=%d,所在行为 :%d,所在列为 :%d.\n",max,h1,l1,min,h2,l2);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-05
#include "stdio.h"
main()
{
int a[4][6]={0},i,j,max,min,h1,h2,l1,l2;
printf("请输入一个3*3矩阵:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);//这里是要求输入矩阵的值
}
max=min=a[1][1];// 将max=min其中的一个数,指第一个数,这样才有了比较的基准
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(a[i][j]>max){max=a[i][j];h1=i,l1=j;}//判断时候比max存的数大,如果大的话,就替换掉,并记录行和列的信息
if(a[i][j]<min){min=a[i][j];h2=i,l2=j;}
}
printf("最大值为=%d,所在行为 :%d,所在列为 :%d.\n最小值为=%d,所在行为 :%d,所在列为 :%d.\n",max,h1,l1,min,h2,l2);//最后的输出
}
相似回答