解题思路:

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;
}


点赞(52)
 

0.0分

90 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 71 条评论

东东 4年前 回复TA
@你胜过世间万物 注意a[0][0]
你胜过世间万物 4年前 回复TA
为啥副对角线是x+y=2呢
ityyds 4年前 回复TA
#include <stdio.h>
int main()
{
    int s, s1 = 0, s2 = 0, sum[30];

    for (int q = 0; q < 9; q++)
        scanf("%d", &sum[q]);
    for (int a = 0,c=2; a < 9; a+=4,c+=2)
    {
        s1+= sum[a];
        s2+= sum[c];
    }
    printf("%d %d", s1,s2);
    return 0;

}笨方法。。。
阳春 4年前 回复TA
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,sum1=0,sum2=0;
    int a[3][3];
    for(i=0;i<=2;i++)
    {
        for(j=0;j<=2;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<=2;i++)
    {
        sum1=sum1+a[i][i];
    }
    for(i=2,j=0;i>=0,j<=2;i--,j++)
    {
        sum2=sum2+a[i][j];
    }
    printf("%d %d",sum1,sum2);




    return 0;
}
阳春 4年前 回复TA
@Cauchy 厉害了,感觉比楼主的题解还要强
不知名刘同学 4年前 回复TA
@蓝色天桥 输出的应该是"%d %d"不是"%d,%d"
蓝色天桥 4年前 回复TA
这个为啥不对呢

#include <stdio.h>
int main()
{
  int a[3][3];
  int i,j,k,sum1=0,sum2=0;
  for(i=0;i<3;i++){
    for(j=0;j<3;j++)
  scanf("%d",&a[i][j]);
  }
  for(k=0;k<3;k++){
    sum1+=a[k][k];
    sum2+=a[k][2-k];
  }
  printf("%d,%d",sum1,sum2);
      return 0;
}
kxh 4年前 回复TA
#include<stdio.h>
int main()
{
    int i[3];
    int j[3];
    int k[3];
    int sum = 0;
    int sum1 = 0;
    scanf("%d %d %d", &i[0], &i[1], &i[2]);
    scanf("%d %d %d", &j[0], &j[1], &j[2]);
    scanf("%d %d %d", &k[0], &k[1], &k[2]);
    sum = i[0] + j[1] + k[2];
    sum1 = i[2] + j[1] + k[0];
    printf("%d %d\n", sum, sum1);
    
    
    return 0;
      纯小白中的智障小白参考 - -
}
111 4年前 回复TA
@踏上星辰 跟你一模一样
昔痕 4年前 回复TA
#include <stdio.h>

int main()
  {
  	int num[3][3];
  	int i,j,a,b;
  	for(i=0;i<3;i++)
  	  for(j=0;j<3;j++)
  	    scanf("%d",&num[i][j]);
  	a=num[0][0]+num[1][1]+num[2][2];
  	b=num[0][2]+num[1][1]+num[2][0];
  	printf("%d %d",a,b);
  	
  	return 0;
  }