Вопрос задан 17.06.2023 в 05:50. Предмет Информатика. Спрашивает Куропата Максим.

Короче, кодим. Двумерный массив и его размеры даны. легенда: кинотеатр, каждый элемент-место,

если единица, занято. Если ноль, то свободно.Нужно найти ряд, в котором есть К свободных соседних мест, К тоже дано. Самый маленький номер ряда нужен, если их несколько. Если такого нет, то выводим ноликкод:n, m = map(int, input().split())a= [list(map(int, input().split())) for i in range(n)]k=int(input())count=0res=[]for i in a: for j in range(len(i)): if i[j]==0: count+=1 if count==k: res.append( a.index(i)) break else: count=0if len(res)==0: print(count)else: print(min(res))Получаю размеры, список из строк в двумерный массив, потом получил число КПолучаю по отдельности списки массива, чекаю их на нолик, если да, то плюс, если попался минус, то обнуляю. Если счетчик приравнялся к К, то дропаю в пустой список номер ряда.Потом циклик. Если в пустой тот список ничего не добавили, то пишем нолик.если в нем что-то есть, то есть длина больше 0, то самый маленький элемент пишем.Что не так????????????
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Коммунарова Настя.

Ответ:

все работает нормально

Объяснение:

ты тут код без отступов дал, мб там что-то не так. внизу код с отступами, который я тестил .

если тебе не нравится что выводит на 1 меньше: нумерация массива не с 1 начинается, а с 0. просто добавляй а res (индекс + 1)

Код:

n, m = map(int, input().split())

a= [list(map(int, input().split())) for i in range(n)]

print(a)

k = int(input())

count = 0

res=[]

for i in a:

   for j in range(len(i)):

       if i[j] == 0:

           count += 1

   if count == k:

       res.append( a.index(i))

       break

   else:

       count = 0

if len(res) == 0:

   print(count)

else:

   print(min(res))

ps: лучше так сделай

k = int(input())

line = 0

for i in a:

   count = 0

   for j in range(len(i)):

       if i[j] == 0:

           count += 1

   if count >= k:

       line = a.index(i) + 1

       break

print(line)


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Я могу помочь вам с вашим кодом на Python.

Ваш код выглядит правильным, но есть несколько мелких ошибок, которые нужно исправить.

- Вместо `a.index(i)` вам нужно использовать `a.index(i) + 1`, так как индексы в Python начинаются с нуля, а вам нужен номер ряда, начиная с единицы. - Вместо `break` вам нужно использовать `continue`, чтобы пропустить оставшиеся элементы в ряду и перейти к следующему ряду. Иначе вы можете пропустить другие подходящие ряды. - Вместо `print(min(res))` вам нужно использовать `print(min(res) + 1)`, по той же причине, что и в первом пункте.

Исправленный код выглядит так:

n, m = map(int, input().split()) a = [list(map(int, input().split())) for i in range(n)] k = int(input()) count = 0 res = [] for i in a: for j in range(len(i)): if i[j] == 0: count += 1 if count == k: res.append(a.index(i) + 1) continue else: count = 0 if len(res) == 0: print(count) else: print(min(res) + 1)

Надеюсь, это поможет вам решить вашу задачу. Если у вас есть еще вопросы, я буду рад ответить на них.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос