解题思路:

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 条评论

叾汨 2年前 回复TA
@叾汨 哦~,谢谢!
oula 2年前 回复TA
@叾汨 initialization of &#039;int *&#039; from incompatible pointer type &#039;int (*)[3]。一个是定义指向整型变量的指针,一个定义指向是二维数组的指针。要么强制转换,要么改成int* p = &number[0][0];
oula 2年前 回复TA
#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);
}
草履虫1023 2年前 回复TA
@你胜过世间万物 不要光靠想,口语自己写出来看一下
叾汨 2年前 回复TA
#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分呢?
2年前 回复TA
#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;
}
路边拾光 2年前 回复TA
@白色枫叶 HHH
余华的书超nice 2年前 回复TA
@你胜过世间万物 @145888 谢谢
INT橙 3年前 回复TA
@花开回落 一样,简单粗暴 笑哭
KK 3年前 回复TA
#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);
}