原题链接:[编程入门]矩阵对角线求和
解题思路:
1、矩阵选择使用二维数组 a[x][y] 来存储。
2、使用二维数据存储数据时,需要2个for循环来获取数据
3、主对角线的数据特征是 x=y, 副对角线的数据特征是x+y=2
注意事项:
参考代码:
#include<stdio.h>
int main()
{
int x, y, sum1 = 0, sum2 = 0, a[3][3];
for(x=0; x<3; x++)
{
for(y=0; y<3; y++)
{
scanf("%d", &a[x][y]);
if(x == y)
sum1+=a[x][y];
if(x+y == 2)
sum2+=a[x][y];
}
}
printf("%d %d", sum1, sum2);
return 0;
}0.0分
90 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <stdio.h> void CalData(int ptr[][3]); int main(void) { int data[3][3] = {0}; for(int i = 0;i < 9;i++) { scanf("%d",&data[i / 3][i % 3]); } CalData(data); return 0; } void CalData(int ptr[][3]) { int sum_Master = 0,sum_Slave = 0; for(int i = 0;i < 3;i++) { sum_Master += ptr[i][i]; sum_Slave += ptr[i][2 - i]; } printf("%d %d\n" ,sum_Master ,sum_Slave); }#include<stdio.h> #define N 3 int main(void) { int number[N][N] = { 0 }; int i = 0, j = 0, sum = 0, all = 0; int* p = number; for (i = 0; i <= 8; i++) { scanf_s("%d", (p + i)); } for (i = 0 , j = 0; i<N ; i++ , j++) { sum += number[i][j]; all += number[i][N - 1 - j]; } printf("%d %d", sum, all); return 0; } 大佬,为啥我用指针来给数组赋值,结果0分呢?#include<stdio.h> int main() { int a[5][5]={0}; int i,j; int sum1=0,sum2=0; for(i=1;i<4;i++) { for(j=1;j<4;j++) scanf("%d",&a[i][j]); } for(i=1;i<5;i++) { for(j=1;j<5;j++) { if(i==j) { sum1=sum1+a[i][j]; } if(j+i==4) { sum2=sum2+a[i][j]; } } } printf("%d %d\n",sum1,sum2); return 0; }#include<stdio.h> int main() { int i,j; int s1=0,s2=0; int a[3][3]; for(i=0;i<3;i++) for(j=0;j<3;j++) { scanf("%d",&a[i][j]); } for(i=0;i<3;i++) for(j=0;j<3;j++) { if(i==j) s1+=a[i][j]; if(i+j==2) s2+=a[i][j]; } printf("%d ",s1); printf("%d",s2); }