оператор ввода, показывающий EOFerror - PullRequest
0 голосов
/ 20 июня 2020

Мой код показывает EOFError для оператора ввода, когда я даю ввод, как описано ниже. В чем проблема, когда он возвращает EOFError как ошибку.

ввод должен быть похож на

3, 2, 5 10 2, 10 5 2, 5 15

запятые относятся к следующей строке

вывод должен иметь вид

ДА, НЕТ, НЕТ

n=int(input())
t1=0
while n>=t1:
  t=int(input())
  l=[]
  for i in range(t):
      val=int(input())
      l.append(val)
  icream=5
  chefmoney=0
  for i in l:
      if(i==icream):
          chefmoney=chefmoney+icream
      if(i>icream) and (i-icream>chefmoney):
          t=False
      if(i>icream) and (i-icream==chefmoney):
          t=True
  t1=t1+1
if(t==True):
  print("YES")
if(t==False):
  print("NO")

      ```

1 Ответ

0 голосов
/ 20 июня 2020

Проблема в том, что вы читаете больше строк, чем доступно.

n=int(input())
t1=0
while n>=t1

должно быть:

n = int(input())
t1 = 0
while t1 < n:

При запуске индекса с 0 сравните индекс строго меньше чем максимальное (контрольное) значение. Чтобы сравнить index <= sentinel value, вам нужно будет начать индекс с <code>1.

Я также перестроил ваше сравнение, потому что традиционно это выражение сравнения записывается как index (comparison) sentinel, а не sentinel (comparison) index.

Это пример ошибки "выкл. На один", которую вы часто видите, упоминаемой при разработке программного обеспечения.

...