Manchester


私信TA

用户名:wenyajie

访问量:313262

签 名:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

等  级
排  名 1
经  验 62797
参赛次数 1
文章发表 188
年  龄 0
在职情况 学生
学  校 Xiamen University
专  业 计算机科学

  自我简介:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

解题思路:
1.设元素下标为i,j ,矩阵阶数为Length,和为sum;

2.主对角线元素下标满足:i==j;

3.副对角线元素下标满足:i+j-1==Length;

4.输入一个元素Mxtrix,判断下标是否满足主副对角线元素下标条件,满足,sum加上这个数;

参考代码:

#include <stdio.h>

int main()
{
    int sum = 0, Length, Matrix;
    scanf( "%d", &Length );     //阶数

    for ( int i = 1; i <= Length; i++ )    //行
        for ( int j = 1; j <= Length; j++ )    //列
        {
            scanf( "%d", &Matrix );
            if ( (i == j) || (i + j - 1) == Length )   //判断
                sum += Matrix;          //求和
        }
    printf( "%d", sum );   //输出
    return(0);
}

别忘点赞哦-.-

 

0.0分

70 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

大佬们这个为什么错了啊

#include<stdio.h>
int main()
{
    int num[100][100];
    int num1,num2,i,j;
    int n;
    int a=0,b=0,c=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            scanf("%d",&num[i][j]);
            if(i==j)
            a=num[i][j]+a;
            else if(i+j==n-1)
            b=num[i][j]+b;
            else if(i==(n-1)/2 && j==(n-1)/2 )
            c=num[i][j];
        }
    }
       
       printf("%d",a+b-c);
	return 0;
}
2023-08-08 15:55:24
if里面的判断条件应该是i+j+1==N;作者不小心打错了吧
2023-02-05 21:58:26
#include<stdio.h>
int main()
{
    int arry[20][20],i,j,zum=0,fum=0,sum,n;
    
    
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            scanf("%d",&arry[i][j]);
        }
    } 
    
    
    
     for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
           if(i==j)
           {
               zum=zum+arry[i][j];
           }
               
        
           if(j==n-i-1)
           {
               fum=fum+arry[j][i];
           }
        }
    }
    
    
    
    if(n%2==0)
    {
        sum=zum+fum;
         printf("%d",sum);
    }
2022-12-26 19:52:42
include<stdio.h>
#include<string.h>
#include<math.h>
int main(){
       int sum=0,n,a[10][10],i,j;
       scanf("%d",&n);
       for(i=0;i<n;i++)
       for(j=0;j<n;j++)
       scanf("%d",&a[i][j]);
       for(i=0;i<n;i++)
       {
           for(j=0;j<n;j++)
       {
           if(i==j)
           {
               sum+=a[i][j];
           }
           if(i+j==n-1)
           {
               sum+=a[i][j];
           }
       }

       }
       printf("%d",sum);
}
这样为啥错了啊
2021-11-18 09:11:30
这样写为什么错啊
#include<stdio.h>
int main(){
	int a,b,c,d,sum=0;
	scanf("%d",&a);
	int n[a][a];
	for(b=0;b<a;b++){
		for(c=0;c<a;c++){
			scanf("%d",&n[b][c]);
		}
	}
	for(b=0;b<a;b++){
		c=0;
		sum+=n[b][c];
		c++;
		d=a-1;
		sum+=n[b][d];
		d--;
	}
	if(a%2!=0)
	sum-=n[(a-1)/2][(a-1)/2];
	printf("%d",sum);
}
2021-11-13 17:32:15
您好,当矩阵大小为5*5 时,输入数据为1至25 时,输出答案为121 ,正确答案是117 , 是否是程序还存在某些疏漏呢?
2021-08-11 23:03:54
为什么运行错误啊(非法的内存访问,数组越界。。。)
#include<stdio.h>
int main(){
	int n,a[10][10],sum=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			scanf("%d",&a[i][j]);
			if(i==j||i+j-1==n){
			   sum+=a[i][j];	
			}
			
		}
	}
	printf("%d",sum);
	return 0;
}
2021-04-08 09:52:23
厉害!
2021-03-17 21:01:54