解题思路:

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


点赞(51)
 

0.0分

90 人评分

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

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

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

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

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

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

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

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

评论列表 共有 71 条评论

bbg 4年前 回复TA
@bbg 错了,是 3 6
bbg 4年前 回复TA
#include<stdio.h>
int main()
{
	int i,j,n,sum1=0,sum2=0;
	int a[10][10];
	scanf("%d",&n);
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
		{	
			scanf("%d",&a[i][j]);
			if(i==j)
				sum1+=a[i][j];
			else if(i+j==n-1)
				sum2+=a[i][j];
		}
		printf("%d %d",sum1,sum2);
		return 0;
}
请问为什么我输出的结果是 3  7呢 = =
seahorizon 4年前 回复TA
#include<cstdio>
using namespace std;
int main()
{
    int a[3][3],b=0,c=0;
    int i,j;
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&a[j][i]);
    for(i=0;i<3;i++)
        b+=a[i][i];
    for(i=2,j=0;i<=0&&j<3;i--,j++)
        c+=a[j][i];
    printf("%d %d",b,c);
    return 0;
}
为什么我的不对
踏上星辰 4年前 回复TA
#include <stdio.h>
int main(void)
{
    int a[3][3];
    int e,g;       //主对角线,副对角线,元素和
    for(int m=0;m<=2;m++)
    {
        for(int n=0;n<=2;n++)
        {
            scanf("%d",&a[m][n]);
        }
    }
    e=a[0][0]+a[1][1]+a[2][2];
    g=a[0][2]+a[1][1]+a[2][0];
    printf("%d %d",e,g);
    return 0;
}
我的好鸡肋
Cauchy 4年前 回复TA
@Cauchy 任意方阵
Cauchy 4年前 回复TA
#include <stdio.h>
#define N 3
int main()
{
	int a[N][N];
	int i,j,k;
	int sum1=0,sum2=0;
	
	for(i=0;i<N;i++)
	for(j=0;j<N;j++)
		scanf("%d",&a[i][j]);

	for(k=0;k<N;k++)
	{
		sum1+=a[k][k];
		sum2+=a[k][N-1-k];
	}
		
	printf("%d %d",sum1,sum2);
	
	return 0;
}
棕帘榈树 4年前 回复TA
@健身的熊 @2151826349 运行就直接输出了题目要求的结果,但是题目是有输入要求的。。所以可能只有答案分,没有过程分
川川 4年前 回复TA
@健身的熊 我也是这种思路,可是不知道为什么会错
健身的熊 5年前 回复TA
#include<stdio.h>

int main()
{
	int a[9] = {1,2,3,1,1,1,3,2,1};
	printf("%d %d",a[0] + a[4] + a[8],a[2] + a[4] + a[6]);
	return 0;
}
错误50%;真的不能投机取巧的啊
不明所以 5年前 回复TA
@不明所以 好的,谢谢。