C语言之基本算法37—数组最大值及其位置
/*
==================================================================
题目:查找数组的最大元素,并输出其位置和值!
==================================================================
*/
#include<stdio.h>
#define M 3
#define N 5
void main()
{
int a[M][N],i,j,max,h,l;
printf("输入%d*%d矩阵:\n",M,N);
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
printf("矩阵输出:\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%4d ",a[i][j]);
printf("\n");
}
for(i=0;i<M;i++)
for(j=0;j<N;j++)
if(max<a[i][j])
{
max=a[i][j];
h=i;
l=j;
}
printf("最大元素是:a[%d][%d],即第%d行,第%d列\n其值为:%d\n",h+1,l+1,h+1,l+1,max);
}
/*
=======================================================================
评:
简单题目,仅仅需清楚查找方法。令max为矩阵的随意一个元素,和全部元素对照,
假设max比它小,就让max=它,并记录此时的行和列,直到查找结束!为了符合
人们的正常思维,行和列要加1。由于计算机默认是从0行開始的,而人们一般都
觉得从1開始!
思考:本程序中矩阵的大小也能够自己确定。但还不够灵活。最好还是试试用输入数
字的方式确定数组大小,使得程序更加灵活。
========================================================================
*/