第1个回答 2011-04-25
不用楼上那么复杂。。。非常简单:
#include<stdio.h>
int main()
{
int array[2][3] = {{5,8,9},{6,-5,-2}};
int max=0;//保存最大值
int line;//保存行下标
int row;//保存列下标
int n,m;
for(n=0;n<2;n++) {
for(m=0;m<3;m++) {
if(array[n][m]>max) {
max = array[n][m];
line = n;
row = m;
}
}
}
printf("max=a[%d][%d]=%d",line,row,max);
return 0;
}
第2个回答 2011-04-20
using namespace std;
class SUM
{
private:
int C_array[5][5];
int s;
int a;
int b,m,n;
public:
SUM(){}
SUM(int temp[5][5])
{
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
C_array[i][j] = temp[i][j];
s = 0;
a = 1;
b = 0;
m = 0;
n = 0;
}
void process1()
{
int i = 0,j = 4;
for(i=0;i<5;i++)
{
s+=C_array[i][i];
}
for(i=0;i<5;i++)
for(j = 4;j>=0;j--)
{
if(i+j==4&&i!=j)
s+=C_array[i][j];
}
cout<<"对角线上所有元素的和为:"<<s<<endl;
}
void process2()
{
int i = 0,j=4;
for(i=0;i<5;i++)
{
if((i+1)%2==0)
a*=C_array[i][i];
}
for(i=0;i<5;i++)
for(j=4;j>=0;j--)
{
if((i+j==4)&&(i!=j)&&((i+1)%2==0)&&((j+1)%2==0))
a*=C_array[i][j];
}
cout<<"对角线上所有下标为偶数的元素的积为:"<<a<<endl;
}
void process3()
{
int i=0,j=0;
b = C_array[0][0];
m = 0;
n = 0;
for(i=0;i<5;i++)
{
if(b<C_array[i][i])
{
b = C_array[i][i];
m = i;
n = i;
}
}
for(i=0;i<5;i++)
{
for(j=4;j>=0;j--)
{
if(i+j==4&&i!=j)
{
if(b<C_array[i][j])
{
b = C_array[i][j];
m = i;
n = j;
}
}
}
}
cout<<"矩阵中对角线上最大元素是:"<<b<<","<<"在矩阵的位置是第"<<m+1<<"行"<<n+1<<"列。"<<endl;
}
};
void main()
{
int t[5][5];
int i,j;
cout<<"请输入一个5*5的矩阵:"<<endl;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
cin>>t[i][j];
SUM sum(t);
sum.process1();
sum.process2();
sum.process3();
fflush(stdin);
getchar();
}
用VS2008写的,测试过了,没有问题。
另外,站长团上有产品团购,便宜有保证本回答被网友采纳