回 帖 发 新 帖 刷新版面

主题:矩阵对角线上的和

求一个N*N矩阵的两条对角线上的元素之和。

回复列表 (共17个回复)

沙发

我只会一点C语言,一起交流交流!!!
  程序清单如下
 #define N 5 
 main()
 {int i,j,sum=0,t[i][j];
  for(i=1;i<N;i++)
   {print("请输入第%d行数字:"i+1);
    for(j=1;j<N;j++)scanf("%d",&t[i][j]);}
  for(i=1;i<N;i++) 
    for(j=1;j<N;j++) 
       if(i==j||i+j=N-1)
         sum+=t[i][j];
 printf("sum=%d\n",sum);} 
 有误请朋友们指出!!!!!!!!

板凳

别瞎糊搞..............C语言的跑到这来.............
程序:
cls
input n:dim a(n,n)
for i=1 to n:for j=1 to n
input a(i,j)
next j,i
for i=1 to n:s=s+a(i,i)+a(i,n+1-i):next i
end

3 楼

求一个N*N矩阵的两条对角线上的和
input n
dim a(n,n)
for i= 1 to n
for j= 1 to n
input a(i,j)
next j
next i

for i= 1 to n
 for j= 1 to n
if i=j or i+j=n+1 then s=s+a(i,j)
next j
next i
print s

4 楼

小猪!不用那么麻烦!
cls
input n
for i=1 to n
  for j=1 to n
    input a(i,j)
    if i=j or i=n+1-j then s=s+a(i,j)
next j,i
print s
end

5 楼

针对:求一个N*N矩阵的两条对角线上的元素之和。
想问一个问题:两条对角线上的元素之和,要不要考虑两条对角线的交点问题呢?


    在N*N矩阵中,
    如果N是偶数时,两条对角线上的元素相加不会有重复的.
    而如果N是奇数时,如定义数组a(n,n)的话,两条对角线最中间的数都是a((n+1)/2,(n+1)/2),它会被重复相加.
    综上,两条对线相加,要不要考虑把加重元素的去掉呢?有时细节不能错过,希望大家回复一下!

6 楼

天尝地酒,你的有问题,你累加a(i,j)不累加a(i,n+1-j),这样不对.............
蓝色的水晶,我觉得你说的有道理,经修改程序如下:
cls
input n:dim a(n,n)
for i=1 to n:for j=1 to n
input a(i,j)
next j,i
for i=1 to n:s=s+a(i,i)
if i<>n+1-i then s=s+a(i,n+1-i)
next i
end

7 楼

CLS
INPUT M, N
DIM A(M, N)
FOR I = 1 TO M
  FOR J = 1 TO N
    INPUT A(I, J)
  NEXT J
NEXT I
FOR I = 1 TO M
  S = S + A(I, I)
NEXT I
PRINT S
END

8 楼

找规律!
DIM A(N,N)
FOR I=1 TO N
  FOR J=1 TO N
    INPUT A(I,J)
    IF I=J OR I=N+1-J THEN S=S+A(I,J)
NEXT J,I
? S
还有楼上只是一条对角线!

9 楼

CLS
INPUT "", n
he = 0
FOR i = 1 TO n
  FOR j = 1 TO n
    INPUT "", x
    IF j = i OR j = n - i + 1 THEN
      he = he + x
    END IF
  NEXT j
NEXT i
PRINT "He ="; he
END

不用数组也行

10 楼

CLS
INPUT N
DIM A(N,N)
FOR I=1 TO N:FOR J=1 TO N:INPUT A(I,J):NEXT J,I
K=N
FOR I=1 TO N
S=S+A(I,I)+A(K,K)
K=K-1
NEXT I
PRINT S
END

我来回复

您尚未登录,请登录后再回复。点此登录或注册