在二维数组中找最大值及其行标和列标 。(用C语言编程)

各位高手帮帮忙 我明天要交

第1个回答  2011-07-05
请输入16个数组元素:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
对角线元素和为:68,对角线偶数下标元素积为:11,
对角线元素中最大元素为:16,在数组中下标为:a[3][3]。
Press any key to continue

#include "stdio.h"
// 1 2 3 4
// 5 6 7 8
// 9 10 11 12
// 13 14 15 16

main()
{
int i,j,sum=0,multi=1,maxA,mPosj,mPosi,a[4][4];
//输入
printf("请输入16个数组元素:\n");
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}
//求对角线 元素和 偶数下标元素乘积 最大数
maxA = a[0][0];
for (i=0;i<4;i++)
{
sum += a[i][i];
if (i%2==0)
{
multi *= a[i][i];
}
if (maxA<a[i][i])
{
maxA = a[i][i];
mPosj = mPosi = i;
}
}
for (i=3,j=0;i>=0,j<4;i--,j++)
{
sum+=a[i][j];
if (i%2==0 && j%2==0)
{
multi *=a[i][j];
mPosj = mPosi = i;
}
if (maxA<a[i][j])
{
maxA = a[i][j];
mPosj = j;
mPosi = i;
}
}
printf("对角线元素和为:%d,对角线偶数下标元素积为:%d,\n对角线元素中最大元素为:%d,在数组中下标为:a[%d][%d]。\n",sum,multi,maxA,mPosi,mPosj);
}
第2个回答  2011-07-05
3 3
1 2 3
4 5 6
7 8 9

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int a[100][100];

int main()
{
int m,n;
while(scanf("%d%d",&m,&n)==2){
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
scanf("%d",&a[i][j]);
int max=-999999;
int row,col;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++){
if(a[i][j]>max){
max=a[i][j];
row=i;
col=j;
}

}
printf("%d %d %d\n",max,row,col);

}
return 0;
}
第3个回答  2011-07-05
#include<stdio.h>

void main()
{

int m,n,i,j;
double max,a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

max=0;

for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(max<a[i][j])

{
max=a[i][j];
m=i;
n=j;
}
}
}

printf("The max is a[%d][%d]=%lf\n",m,n,max);

}本回答被提问者采纳