原题链接:C语言训练-求矩阵的两对角线上的元素之和
0.0分
18 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
@uq_56708919617 正确代码如下: #include <stdio.h> int main() { int arr[10][10]; int sum1 = 0, sum2 = 0, sum3 = 0; int N; scanf("%d", &N); int i = 0; int j = 0; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { scanf("%d", &arr[i][j]); } } for (i = 0; i < N; i++) { sum1 = sum1 + arr[i][i]; } i = 0; j = N - 1; while (i < N) { sum2 = sum2 + arr[i][j]; i++; j--; if (i == j) { sum2 -= arr[i][j]; } } sum3 = sum1 + sum2; printf("%d", sum3); return 0; }@uq_56708919617 // #include <stdio.h> // #include <math.h> // int main() // { // int N, arr[10][10], sum = 0; // scanf("%d", &N); // for (int i = 0; i < N; i++) // { // for (int j = 0; j < N; j++) // { // scanf("%d", &arr[i][j]); // } // } // for (int i = 0; i < N; i++) // { // for (int j = 0; j < N; j++) // { // if (i == j || i + j == N - 1) // { // sum += arr[i][j]; // } // } // } // printf("%d", sum); // return 0; // } #include <stdio.h> int main() { int arr[10][10]; int sum1 = 0, sum2 = 0, sum3 = 0; int N; scanf("%d", &N); int i = 0; int j = 0; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { scanf("%d", &arr[i][j]); } } for (i = 0; i < N; i++) { sum1 = sum1 + arr[i][i]; } i = 0; j = N - 1; while (i < N) { sum2 = sum2 + arr[i][j]; i++; j--; if (i == j) { sum2 -= arr[i][j]; } } sum3 = sum1 + sum2; printf("%d", sum3); return 0; }#include<stdio.h> int main() { int arr[10][10] = { 0 },n,sum=0; scanf("%d", &n); for (int i = 0; i < n; i++) for(int j=0;j<n;j++) scanf("%d", &arr[i][j]); for (int c = 0, k = 0; c < n; c++, k++) sum += arr[c][k]; for (int c = n - 1, k = 0; k < n; c--, k++) sum += arr[c][k]; if(n%2) printf("%d", sum-arr[n/2][n/2]); else printf("%d", sum); return 0; }#include<stdio.h> int main() { int arr[10][10];int sum1=0,sum2=0,sum3=0; int N;scanf("%d",&N); int i=0;int j=0; for(i=0;i<N;i++) { for(j=0;i<N;j++) { scanf("%d",&arr[i][j]); } } for(i=0;i<N;i++) { sum1=sum1+arr[i][i]; } i=0;j=N-1; while(i<N&&j>=0) { sum2=sum2+arr[i][j]; i++; j--; } sum3=sum1+sum2; printf("%d",sum3); return 0; } 这个代码是对的吗?我提交显示时间超了int main() { int n,a[n][n],sum1=0,sum2=0,i,j,sum3=0; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%d",&a[i][j]); if(i==j) sum1=sum1+a[i][j]; if(i+j==n-1&&i!=j) sum2=sum2+a[i][j]; } } sum3=sum1+sum2; printf("%d",sum3); return 0; } 大佬们,我这个为什么不对呀,就83分,裂开想问一下在定义数组的时候,定义的是a[N][N]或者a[i][j]都是:Segmentation fault是什么原因啊? #include<stdio.h> int main() { int N,i,j,sum=0; int a[N][N]; scanf("%d",&N); for(i=0;i<N;i++) { for(j=0;j<N;j++) { scanf("%d",&a[i][j]); if(i==j||i+j==N-1) sum=sum+a[i][j]; } } printf("%d",sum); return 0; }