Вычислить сумму и число положительных элементов матрицы A[N, N]
Задание: Вычислить сумму и число положительных элементов матрицы A[N, N], находящихся над главной диагональю.
Я сделал код, правда только не совсем работает так: Вывод положительных чисел не может убрать отрицательные (т.е. например: 2 3 4 5 -1, а вывод получается: 5, хотя должно быть 4). Также правильно ли я сделал с суммой, если я сделал с рандомным значением (Выводит при вводе 2 1 2 3 4: 48, потом 52, 37 и т.д.)? Заранее благодарю.
import random
pol = 0
s=0
i=0
k=1
aar = []
N=int(input('Ввод: '))
A=[[random.randrange(10) for i in range(N)] for j in range(N)]
for row in range(N):
for col in range(row + 1, N):
s+=A[row][col]
for row in range(N):
aar.append(input())
if N > 0:
pol += 1
print('Сумма:', s)
print('Число:', pol)
Ответы (1 шт):
Автор решения: hedgehogues
→ Ссылка
Это же можно сделать более эффективно:
import random
pol = 0
s = 0
N = int(input('Ввод: '))
A = [[random.randrange(10) for i in range(N)] for j in range(N)]
for i in range(N):
for j in range(i+1, N):
if A[i][j] <= 0:
continue
if A[i][j] > 0:
pol += 1
s += A[i][j]
print('Сумма:', s)
print('Число:', pol)
Или даже при генерации данных (при считывании, без хранения матрицы):
import random
pol = 0
s = 0
N = int(input('Ввод: '))
for i in range(N):
for j in range(i+1, N):
a_ij = random.randrange(10)
if a_ij <= 0:
continue
if a_ij > 0:
pol += 1
s += a_ij
print('Сумма:', s)
print('Число:', pol)