c语言编程:找出二维数组中的最大值最小值及其所在行号列号

什么思路呀~~~ 没概念哦~

示例:有一个3*4的矩阵,要求编程序求出其中最大的那个元素的值,以及其所在的行号和列号。

代码:

#include<stdio.h>

int main()

{

int i,j,row=0,colum=0,max;

int a[3][4]={{1,2,3,4},{4,5,6,7},{-1,3,-5,10}};

max=a[0][0];

printf("array a:\n");

for(i=0;i<=2;i++)

{

for(j=0;j<=3;j++)

{

printf("%5d",a<i>[j]);

}

printf("\n");

}

for(i=0;i&lt;=2;i++)

{

for(j=0;j&lt;=3;j++)

{

if(a<i>[j]&gt;max)

{

max=a<i>[j];

row=i;

colum=j;

}

}

}

printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);

return 0;

}

运行结果:

扩展资料:

printf用法:

1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-18
4*4的数组示例,直接输入一个4*4的数组即可获得答案,供参考

#include <stdio.h>
void main()
{
int a[4][4],i,j,max,row1,column1;
int min,row2,column2;
for (i=0;i<4;i++)
for (j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=a[0][0];row1=0;column1=0;
min=a[0][0];row2=0;column2=0;
for (i=0;i<4;i++)
for (j=0;j<4;j++)
{ if (max<a[i][j])
{ max=a[i][j];
row1=i;
column1=j; }
if (min>a[i][j])
{ min=a[i][j];
row2=i;
column2=j;
}
}
printf("max=%d,row=%d,column=%d\n",max,row1+1,column1+1);
printf("min=%d,row=%d,column=%d\n",min,row2+1,column2+1);

}
第2个回答  2017-11-23
主体框架是设置一个大循环,遍历各行
设置两个变量数组,一个用于存储最大值的位置,一个用于存储最小值位置,如max[3],min[3]其中max[0],max[1],max[2]分别代表行号 列号,数值。
循环前,先给max min赋初值,默认到数组的第一个值。
在循环中,每次循环都将数值与max[2]和min[2]比较,如果比max[2]大,就用新值替换maxmin也一样。
举例:比如数组a[10][3]
max[0]=0;
max[1]=0;
max[2]=a[0][0];
min[0]=0;
min[1]=0;
min[2]=a[0][0];
for(i=0; i<10; i++)
for(j=0; j<3; j++){
if (a[i][j]>max[2]){
max[0]=i;

max[1]=j;

max[2]=a[i][j];
}
if (a[i][j]<min[2]){
min[0]=i;

min[1]=j;

min[2]=a[i][j];
}
}
printf(“%d”,max[0]);
....本回答被网友采纳
第3个回答  2013-05-18
用气泡法,晚上给你解释!
相似回答