首页 > 其他分享 >求对角线元素之和

求对角线元素之和

时间:2024-12-20 23:27:55浏览次数:4  
标签:matrix 奇数 sum 元素 矩阵 对角线

Description 

给定一个n*n的矩阵,求其对角线的元素之和。

Input 

首先输入一个n,n为小于10的奇数。 接下来输入一个n行n列的矩阵。

Output 

输出一个整数,表示矩阵对角线元素之和。

#include <stdio.h>

int main() {
    int n, i, j, sum = 0;
    
    // 读取矩阵的大小n(假设是一个n x n的方阵)。
    scanf("%d", &n);

    // 定义一个n x n的二维数组来存储矩阵元素。
    int matrix[n][n];

    // 从标准输入读取矩阵的每个元素,并填充到matrix数组中。
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }

    // 计算主对角线和副对角线上的元素之和。
    for (i = 0; i < n; i++) {
        // 加上主对角线上的元素。
        sum += matrix[i][i];
        
        // 对于非中心位置的元素,加上副对角线上的元素。
        // 如果n是奇数,中间的那个元素会被加两次,所以需要检查避免这种情况。
        if (i != n / 2 || (n % 2 == 0 && i != n / 2 - 1)) {
            sum += matrix[i][n - 1 - i];
        }
    }

    // 如果n是偶数,则在上述循环中会错误地将中间元素减去一次,
    // 因为偶数矩阵没有真正的“中心”元素。这里我们纠正这个错误。
    // 注意:这里的逻辑有误,应该是在n为奇数时减去重复计算的中间元素。
    if (n % 2 != 0) { // 修正为当n是奇数时才执行此操作
        sum -= matrix[n / 2][n / 2];
    }

    // 打印最终计算得到的对角线元素之和。
    printf("%d\n", sum);
    return 0;
}

标签:matrix,奇数,sum,元素,矩阵,对角线
From: https://blog.csdn.net/2402_86997774/article/details/144621841

相关文章

  • 19表格合并-form以及常见表单元素-Emmet语法
    一、单元格合并什么是单元格的合并呢?在某些特殊的情况下,每个单元格占据的大小可能是并不固定的。一个单元格可能会跨多行或者多列来使用;比如下面这个单元格:那么如何进行单元格的合并呢?单元格合并使用两个属性:可以跨列合并,使用colspan,在最左边的单元格写colspan属性,并且省......
  • 215. 数组中的第K个最大元素
    数组中的第K个最大元素给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。你必须设计并实现时间复杂度为O(n)的算法解决此问题。示例1:输入:[3,2,1,5,6,4],k=2输出:5示例2:......
  • 小发现-->对“删除”数组元素的不同做法
     删除的本质:对于数组元素删除,其实不能算是删除,毕竟你数组是一片连续存储的空间,你要是真的删除了一个地方那还了得了,所以删除无非就是在输出结果的时候看上去像是某个地方的元素被删除了,实际上呢,要么是被别的元素覆盖了,要么是被标记了,跳过了这个位置进行输出,那么接下来就对着......
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-8- 元素高级定位技巧(详细教程)
    1.简介随着网页的复杂性和动态性的增加,自动化测试变得越来越重要。Playwright作为一款强大的无头浏览器测试库,提供了多种元素定位方式,使得我们能够轻松地对网页进行自动化操作。在基础的定位方式如通过id、classname和tagname等之外,Playwright还提供了更高级的定位技巧,如nth()......
  • 如何使用position:relative内的absolute元素水平和垂直居中?
    在前端开发中,我们经常需要使元素在其父元素内部水平和垂直居中。当父元素设置为position:relative,而子元素设置为position:absolute时,可以通过以下步骤实现:设置父元素为相对定位(position:relative):这会创建一个新的定位上下文,使得子元素的绝对定位是相对于这个父元素......
  • 对非可点击元素如(span)的click事件在有些手机上不触发如何解决?
    对于非可点击元素(如<span>)的click事件在某些手机上不触发的问题,这通常是由于这些元素默认不是为交互设计的。移动浏览器或特定的浏览器引擎可能会对这些元素的点击事件进行优化或忽略,尤其是在涉及到性能或用户体验的情境中。为了解决这个问题,你可以尝试以下几种方法:添加cu......
  • Java学习,数组中查找指定元素
    Java中查找数组中的指定元素是一个常见的操作。数组中查找指定的元素,并返索引:publicclassFindElementInArray{  publicstaticvoidmain(String[]args){    int[]numbers={10,20,30,40,50};    inttarget=30;    intindex......
  • jquery固定元素在窗口顶部位置插件
    jquery-stopattop是一款固定元素在窗口顶部位置的jquery插件。该插件可以使任意HTML元素在页面向下滚动时,固定在浏览器窗口的顶部位置。在线预览  下载   使用方法在页面中引入jquery和jquery.stopattop.js文件。<scriptsrc="js/jquery.min.js"><scriptsrc="js......
  • Java学习,查找数组重复元素
    Java中查找数组中的重复元素可以通过多种方法实现,包括使用额外的数据结构(如 HashSet)来跟踪已经遇到的元素,或者使用嵌套循环来比较数组中的每一对元素。使用 HashSet查找:publicclassFindDuplicates{  publicstaticvoidmain(String[]args){    int[]......
  • Java学习,删除数组元素
    Java中数组的长度是固定的,这意味着不能,直接从一个数组中删除元素并期望数组自动调整其大小。可以通过几种方式,来实现删除数组元素的效果。创建一个新数组:publicclassRemoveArrayElement{  publicstaticvoidmain(String[]args){    int[]array={1,2......