当前位置:首页
建筑知识
下面的子程序求-方阵的次对角线上的元素之和。SUBROUTINE CDJX(M, N, K)DIMENSION M(N,50) DO 10J=1, N K=_10 CONTINUE RETURN EN
下面的子程序求-方阵的次对角线上的元素之和。SUBROUTINE CDJX(M, N, K)DIMENSION M(N,50) DO 10J=1, N K=_10 ConTINUE RETURN END为了使程序完整,应在_处填入的是:
A 、K+M(J, J)
B 、K+M(J, N+1-J)
C 、K+M(N-J, J)
D 、K+M(N+J, N-J)
【正确答案:B】
参考具体程序如下:#include<stdio.h>int main(){int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}int i,j,sum,m=0,sum1=0,sum2=0printf("array an")for(i=0i<3i++){for(j=0j<3j++){printf("%4d",a[i][j])m=m+1}if(m%3==0)printf("n")}sum1=a[0][0]+a[1][1]+a[2][2]sum2=a[0][2]+a[1][1]+a[2][0]sum=sum1+sum2printf("对角线元素之和为%d",sum)return 0}
我是 用一个.m文件来实现的,
第一,建立一个m文件,并把以下代码拷贝过去,然后保存名为juzhen.m的文件
function juzhen()
a=input('请输入一个矩阵') %%%用键盘输入一个方阵,随便一个方阵,几阶的都可以,但是要注意矩阵的“行”之间要用“分号”间隔,每一行的元素之间要用“空格” 间隔,下面的例子,为了让你理解,我输入的是3阶方阵%%%
[m,n]=size(a)
sum1=0sum2=0 %%%sum1是主对角线元素之和,sum2另外的对角线元素之和
for i=1m
sum1=sum1+a(i,i)
sum2=sum2+a(i,m-i+1)
end
disp('sum1=')disp(sum1) %%在键盘上显示结果
disp('sum2=')disp(sum2)
第二,在命令窗口输入:
>>juzhen
%%%以下便是运行界面结果
请输入一个矩阵[1 2 34 5 67 8 9]
a =
1 2 3
4 5 6
7 8 9
sum1=
15
sum2=
15
【输入】
输入一个4×4的整数矩阵。
分4行,每行4个整数,整数之间以空格间隔。
【输出】
分行输出矩阵的外围元素之和,主对角线元素之和以及副对角线元素之和。
【输入示例】
1 2 4 5
6 7 8 9
0 1 2 3
4 5 6 7
【输出示例】
52
17
18
【提示】
求三类元素的和,可以定义三个不同的和变量,在遍历数组元素的循环中通过三次条件判断分别进行三类元素的求和。设行下标为i,列下标为j,考察三类元素的下标特征,外围元素要么行下标i == 0或者i == n - 1(这里n为4),要么列下标j ==0或者j == n - 1;主对角线上的元素行下标和列下标相等(i == j);副对角线上的元素行下标和列下标之和等于n - 1(i + j == n - 1)。