解题思路:
1.设元素下标为i,j ,矩阵阶数为Length,和为sum;
2.主对角线元素下标满足:i==j;
3.副对角线元素下标满足:i+j-1==Length;
4.输入一个元素Mxtrix,判断下标是否满足主副对角线元素下标条件,满足,sum加上这个数;
参考代码:
#include <stdio.h> int main() { int sum = 0, Length, Matrix; scanf( "%d", &Length ); //阶数 for ( int i = 1; i <= Length; i++ ) //行 for ( int j = 1; j <= Length; j++ ) //列 { scanf( "%d", &Matrix ); if ( (i == j) || (i + j - 1) == Length ) //判断 sum += Matrix; //求和 } printf( "%d", sum ); //输出 return(0); }
别忘点赞哦-.-
0.0分
70 人评分
#include <stdlib.h> int main(int argc, char *argv[]){ int a[10][10],i,j,sum=0,n; scanf("%d",&n); if(n>1){ for(i=0;i<n;i++){ for(j=0;j<n;j++) scanf("%d",&a[i][j]);} for(i=0;i<n;i++){ sum=sum+a[i][i]+a[i][2-i]; if(i==n-1-i){sum=sum-a[i][i];} } printf("%d",sum); } else if(n==1) for(i=0;i<n;i++){ for(j=0;j<n;j++) scanf("%d",&a[i][j]);} for(i=0;i<n;i++){ for(j=0;j<n;j++) printf("%d",a[i][j]);} return 0; }
这样写哪里不对呢 #include<stdio.h> int main( ) { int i,j,main=0,vice=0,n; int c[n][n]; scanf("%d",&n); for (i=0;i<n;i++) { for (j=0;j<n;j++) { scanf("%d",&c[i][j]); if (i==j) { main += c[i][j]; } else if (i+j==n-1) { vice += c[i][j]; } } } printf("%d",main+vice); return 0; }
jumpstones 2020-11-18 13:41:09 |
定义数组大小不能为变量
kktry 2021-03-29 13:17:39 |
要用malloc函数分配
kktry 2021-03-29 13:22:15 |
瞎写