C语言程序设计:求二维数组中最大元素值及其行列号

编程题

#include<stdio.h>

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("%d,%d,%d\n",max,row,colum);

}

扩展资料:

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

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

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

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

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

printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。

其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-23

#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("最大值=%d\n行号= %d\n列号= %d\n",max,row,colum);

}

扩展资料:

数组使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a

[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但

并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]=

{1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋

值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

参考资料:

百度百科-数组

本回答被网友采纳
第2个回答  推荐于2018-06-18

思路:先假设二维数组的第一个数就是最大数,在依次遍历二位数组,判断其是否大于最大数,大于最大数就替换掉最大数,并修改最大数的行列号。

参考代码:

#include<stdio.h>
int main()
{
int a[5][5],max,i,j,p,q;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
p=q=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(a[i][j]>max){
max=a[i][j];
p=i;
q=j;
}
printf("最大数为:%d,行号为:%d,列号:%d.\n",max,p,q);
     return 0;
}
/*
运行结果:
1 5 4 7 6
4 5 8 45 12
1 4 87 56 12
11 25 84 35 47
55 88 99 66 44
最大数为:99,行号为:4,列号:2.
*/

本回答被网友采纳
第3个回答  2015-10-29

  找出二维数组中的最大值最小值及其所在行号列号

  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);
}

第4个回答  2014-06-20
#include<stdio.h> intmain() { int a[3][4],max,x,y,i,j; printf("请输入:\n"); for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]); max= a[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(max<a[i][j]){ max=a[i][j]; x=i;y=j; } printf("%d %d %d",max,x,y); }本回答被提问者采纳