python——矩阵操作

【问题描述】输入一个N阶矩阵(3<N<10且N为奇数),矩阵中元素均为整数,取值在-1000至+1000之间。将该矩阵中元素的最大值放在矩阵中心,元素的最小值放在矩阵的四个边界上,其余位置换成原矩阵中所有元素的和。
【输入文件】从标准输入读取输入。第一行只有一个整数N,代表矩阵的阶数。
后续有N行输入,每行有N个以若干空格分隔的整数,代表矩阵在该行上的所有元素。
【输出文件】向标准输出打印矩阵的操作结果。输出N行,每行对应矩阵在该行上的所有元素,每一行末均输出一个回车符。每个元素占5个字符宽度(包括负号),向右对齐,不足部分补以空格。
【输入样例】 (下例中#代表空格)
5
7##-1##0##8##9
12#13#14#15#16
-5##-6#-7#-8#-9
21#22#31#33#50
-51#-4#5#11#17
【输出样例】
##-51##-51##-51##-51##-51
##-51##193##193##193##-51
##-51##193###50##193##-51
##-51##193##193##193##-51
##-51##-51##-51##-51##-51
【样例说明】输入矩阵中的最小值为-51,最大值为50,分别放在新矩阵的四个边界和中心,其余位置为原矩阵所有元素的和。

def mmatrix(n , ss):
    a = []
    temp = []
    temp1 = []
    for i in range(n):#求出矩阵每行、每列的最小值
        temp.append(min(ss[i]))
        temp1.append(max(ss[i]))
    a.append(min(temp))
    a.append(max(temp1))
    q = 0
    for r in ss:#求出矩阵的和
        for c in r:
            q += c
    a.append(q)
    return a
n = int(input())
ss = []
for i in range(n):
    a = [int(s) for s in input().split()]
    ss.append(a)
a = mmatrix(n , ss)
k1 = ' '* (4 - len(str(a[0])))#最小值前面的空格数
k2 = ' '* (4 - len(str(a[1])))
k3 = ' '* (4 - len(str(a[2])))
# print(k1 , 1)
for r in range(n):
    if r == 0 or r == (n -1):
        for c in range(n):
            print(k1 ,a[0] , end='')
    else:
        for c in range(n):
            if c == (n // 2) and r == (n //2):
                print(k2 , a[1] , end='')
            elif c == 0 or c == (n -1):
                print(k1 , a[0] , end='')
            else:
                print(k3 , a[2] , end='')
    print()
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值