C语言:有一个3*4的矩阵,要求编写求这个二维数组中的最大的那个元素的值,以及所在的行号和列号。

如题所述

#include <stdio.h>
void main()
{
int i,j,row = 0 ,colum = 0,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max = a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{
max = a[i][j];
row = i;
colum = j;
}
printf("max=%d,/nrow = %d,/ncolum = %d/n",max,row,colum);
}

参考资料:http://blog.csdn.net/garnett2003/article/details/6194260

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-30
矩阵的元素由键盘输入?
#include<stdio.h>
void main()
{
int pbuff[3][4];
printf("请输入第一行的元素:");
scanf("%d%d%d%d",&pbuff[0][0],&pbuff[0][1],&pbuff[0][2],&pbuff[0][3]);
printf("\n");
printf("请输入第2行的元素:");
scanf("%d%d%d%d",&pbuff[1][0],&pbuff[1][1],&pbuff[1][2],&pbuff[1][3]);
printf("\n");
printf("请输入第3行的元素:");
scanf("%d%d%d%d",&pbuff[2][0],&pbuff[2][1],&pbuff[2][2],&pbuff[2][3]);
printf("\n");
int maxpbuff=pbuff[0][0];
int hang=0,lie=0;
for(int row=0;row<3;row++)
for(int col=0;col<4;col++)
{
if (maxpbuff<=pbuff[row][col])
{
hang =row+1;
lie=col+1;
}
maxpbuff=maxpbuff>pbuff[row][col]?maxpbuff:pbuff[row][col];
}
printf("最大的元素为%d,所在行为:%d,所在列为:%d\n",maxpbuff,hang,lie);
}
第2个回答  2011-09-30
这个不是很难吧 !!!只要编写两个FOR循环,以第一个元素为MAX然后依次比较.如果发现比它大的数则交换MAX的值.直到没有数比它大,则这个时候它就是这个二维数组中的最大值了.这时候输出它的行号和列号就行了.
相似回答