You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现N阶随机矩阵主对角线下方元素求和功能求助

实现说明

主对角线元素的判定规则为:从矩阵左上角到右下角的元素,满足行索引 = 列索引(索引从0开始计数),因此主对角线下方元素满足行索引 > 列索引,遍历所有符合该条件的元素累加即可得到结果。

修正后的代码

1. suma_matriz函数实现

def suma_matriz(matriz):
    suma_total = 0
    filas = len(matriz)
    # 遍历每一行
    for f in range(filas):
        # 仅遍历当前行中列索引小于行索引的元素(即主对角线下方)
        for c in range(f):
            suma_total += matriz[f][c]
    return suma_total

2. 主程序调用修正

原代码主程序中调用suma_matriz时未传入参数,需要修改为:

total = suma_matriz(matriz)
完整可运行代码
import random

def llenar_matriz(n):
    # 用1-99的随机数填充矩阵
    matriz = []
    for r in range(n):
        fila = []
        for c in range(n):
            fila.append(random.randint(1,99))
        matriz.append(fila)
    return matriz

def imprimir_matriz(matriz):
    # 格式化打印矩阵
    filas = len(matriz)
    columnas = len(matriz[0])
    for f in range(filas):
        for c in range(columnas):
            print ("%3d" %matriz[f][c], end="")
        print()

def suma_matriz(matriz):
    # 计算主对角线下方元素总和
    suma_total = 0
    filas = len(matriz)
    for f in range(filas):
        for c in range(f):
            suma_total += matriz[f][c]
    return suma_total

# 主程序
lado = int(input("Ingrese el ancho de la matriz: ")) # 输入矩阵边长生成N×N矩阵
matriz = llenar_matriz(lado)
imprimir_matriz(matriz)
total = suma_matriz(matriz)

print("La suma de los numeros debajo de la diagonal principal de la matriz es: ",total)

内容的提问来源于stack exchange,提问作者Gibbon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:54:04