python,输入一个5行5列的矩阵,保证各个元素不同,每列每行以及主对角线上的各元素和相等
时间: 2024-02-24 14:55:39 浏览: 58
好的,可以使用以下代码实现:
```python
matrix = [[0]*5 for i in range(5)] # 初始化5x5矩阵
sum_val = 0 # 矩阵每行、每列、主对角线上的和
flag = True # 标记各元素是否不同
# 循环输入矩阵元素
for i in range(5):
row_sum = 0 # 当前行的和
col_sum = 0 # 当前列的和
for j in range(5):
while True:
val = int(input("请输入第{}行第{}列的元素:".format(i+1, j+1)))
if val in matrix[i] or val in [matrix[k][j] for k in range(5)]:
print("该元素已存在,请重新输入!")
else:
break
matrix[i][j] = val
row_sum += val
col_sum += matrix[j][i]
sum_val += matrix[i][i]
if i == 4 and sum_val != row_sum and sum_val != col_sum:
flag = False
elif sum_val != row_sum or sum_val != col_sum:
flag = False
# 输出矩阵
if flag:
print("输入的矩阵为:")
for i in range(5):
for j in range(5):
print("{:4d}".format(matrix[i][j]), end=" ")
print()
else:
print("输入的矩阵不符合条件!")
```
这段代码会提示用户输入每个元素,并且会判断元素是否已经存在于矩阵中,保证各个元素不同。同时,每输入一行就计算该行的和、每输入一列就计算该列的和、每输入一个主对角线上的元素就计算主对角线的和。最后判断这些和是否相等,并输出矩阵。
阅读全文