【问题描述】输入一个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()