注册 登录
编程论坛 C++教室

如何求二维数组中对角线上元素的和??

q328640533 发布于 2007-10-16 14:42, 5318 次点击
今日看见一题
从键盘上输入九个整数,输入到3*3的二维数组中,求对角线上元素的和。
不知道怎么下手.谁给解答下.谢谢
16 回复
#2
nuciewth2007-10-16 14:46
for(i=0;i<M;i++)
{
sum+=data[i][i];
}//主对角元素和
#3
q35959862007-10-16 14:56
回复:(nuciewth)for(i=0;i
这个主对角元素和是加2个角的还是对角线上的都加呢?
#4
從霝開匙2007-10-16 15:10
问下怎么向二维数组里面输入数字啊
#5
nuciewth2007-10-16 15:15
我只写主对角.
副对角也容易sum+=data[i][M-i-1];
不过两者之和要再减去最中间的和 summ-=data[M/2][M/2];
#6
從霝開匙2007-10-16 15:33

如果输入以后我要输出这个3*3的数组该怎么做!!望改正

#include <iostream>
using namespace std;
int main()
{int a[3][3],sum=0;
int i,j;
cout<<"enter data:"<<endl;;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
cin>>a[i][j];

for(int m=0;m<3;m++)
{for (int k=0;k<3;k++)
cout<<a[m][n];
cout<<endl;}


}

[此贴子已经被作者于2007-10-17 10:05:17编辑过]

#7
nuciewth2007-10-16 15:36
m,k没有定义.
#8
從霝開匙2007-10-16 15:38

大意咯,改过来了 ,不过还是不行啊,好向运行不到下面的输出那里怎么表示cin >>完了啊

[此贴子已经被作者于2007-10-16 15:42:02编辑过]

#9
nuciewth2007-10-16 15:50

对了,你这个是9*9的数组.

#10
從霝開匙2007-10-16 16:13

他是怎么输入的输入一个就点回车的吗 ?我这样的话最后得出来的数组不对哦,还有就是谢谢你的回答!!

#11
nuciewth2007-10-16 16:43
难道你连怎么输入数据都不知道吗
输入一个,空格,换行都行.
#12
yoapple2007-10-16 17:14

用矩阵好得很

#13
從霝開匙2007-10-16 21:59

晕,当然不会啊,大哥不知道你运行了没,我运行的结果是不对的

#14
q35959862007-10-16 22:04
#include<iostream.h>
int main()
{
int s[3][3];
int h,sum=0;
cout<<"enter date";
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
cin>>h;
s[i][j]=h;
}
for (i=0; i<3; i++)
{
sum+=s[i][i];
sum+=s[i][2-i];
}
sum=sum-s[1][1];
cout<<sum<<endl;
return 0;
}


运行这个试试看.综合大家的,和同学的帮忙做出来的.
#15
q35959862007-10-17 07:17
大家都来看看,有错误的地方指导下...谢谢!!
#16
孤魂居士2007-10-17 11:03

跟着数组的规模输入```

#17
天心水月2007-10-21 00:07
#include<iostream.h>
#include<math.h>
void main()
{
int s[3][3];
int i,j,sum=0;
cout<<"enter date"<<endl;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
cin>> s[i][j];
}
for (i=0; i<3; i++)
for(j=0;j<3;j++)
if(fabs(i-j)!=1)
sum+=s[i][i];

cout<<sum<<endl;

}

编译正确。
1