8 строчка кода выдаёт ошибку... Объясните, как пофиксить
Напишите программу, которая выводит количество элементов квадратной матрицы в каждой строке, больших среднего арифметического элементов данной строки.
Формат входных данных На вход программе подаётся натуральное число nn — количество строк и столбцов в матрице, затем элементы матрицы (целые числа) построчно через пробел.
Формат выходных данных Программа должна вывести nn чисел — для каждой строки количество элементов матрицы, больших среднего арифметического элементов данной строки.
n = int(input())
q = 0
w = 0
m = [input().split() for _ in range(n)]
for i in range(n):
for j in range(n):
q += int(m[i][j])
if q // n <= int(m[i][y for y in range(n)]):
w += 1
print(q, w)
q = 0
w = 0
Я новичок, так что простите, если творю что-то глупое))
Ответы (1 шт):
Советую сначала освоить обычные циклы, потом уже переходить к list comprehension, а не пытаться их методом тыка использовать.
После того, как посчитали сумму элементов в строке, вам нужно еще раз таким же циклом по этой же строке пройти и посчитать количество элементов больше среднего:
n = int(input())
m = [input().split() for _ in range(n)]
for i in range(n):
q = 0
for j in range(n):
q += int(m[i][j])
average = q / n
w = 0
for j in range(n):
if int(m[i][j]) > average:
w += 1
print(q, w)
То же самое в более "питоничном" стиле (без использования индексов):
n = int(input())
m = [input().split() for _ in range(n)]
for row in m:
q = 0
for item in row:
q += int(item)
average = q / n
w = 0
for item in row:
if int(item) > average:
w += 1
print(q, w)