Найдите ошибку в коде, пожалуйста!

373 просмотра
0
0 Комментариев

Напишите программу, которая проверяет чек из магазина. На чеке указано, по каким ценам и в каком количестве куплены товары, общая стоимость данного товара (т. е. данной позиции в чеке), а также суммарная итоговая стоимостью. Конечно, по цене и количеству можно узнать стоимость, и суммарную стоимость тоже можно рассчитать. Программа должна проверить, правильно ли рассчитана стоимость каждой позиции и правильно ли рассчитана общая сумма, и если присутствуют ошибки, то указать, где именно.
Формат ввода:
На первой строке записано количество позиций N (оно меньше 1000 и дополнено справа пробелами, чтобы достигнуть длины в 4 символа) и общая сумма (целое число).
Далее следует N позиций чека, каждая из которых записана на отдельной строке и соответствует покупке нескольких единиц некоторого товара.
Сначала записана цена товара (она дополнена справа пробелами до 7 символов), затем знак «*», затем количество этих товаров (оно дополнено справа пробелами до 4 символов), затем знак «=», затем стоимость данной позиции.
Формат вывода.
Нужно вывести разность между указанной итоговой суммой и истинной суммой стоимостей по всем позициям.
Далее нужно вывести в порядке возрастания номера всех позиций (нумерация с 1), в которых указанная стоимость расходится со стоимостью, которую можно рассчитать из цены и количества товара.
Что тут не так?

s = input()
 
n, total = int(s[:4]), int(s[4:])
 
errors, true_total = [], 0
 
for i in range(n):
 
    s = input()
 
    price, amount, cost = int(s[:7]), int(s[8:12]), int(s[13:])
 
    if price * amount != cost:
 
        errors.append(i+1)
 
    true_total += cost
 
 
print(total - true_total)
 
for x in errors:
 
    print(x, end=' ')

Ввод:

3 2300
 
99 *2 =199
 
20 *100 =2000
 
11 *4 =55

У меня выводится:

46
 
1 3

Должно:

58
 
1 3


Добавить комментарий

1 Ответы

Python Опубликовано 09.12.2018
0

Наверное
не

true_total += cost

а

true_total +=  price * amount

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up