Професионална програма
Loading...
krascho avatar krascho 13 Точки

While - Loop - More Exercisers - 2. Report System

Здравейте, на 2ра (Report System) задача от More exercises ми дава 50/100 в judge. Знам какво е сбъркано, но не мога да се сетя как да го поправя. Проблемът е, че принтира след всеки две въведени стойности. Ако някой може да ми каже как да си поправя моя код, ще съм много благодарен. Ето го и него: https://pastebin.com/fhJK25dh

Благодаря предварително!

Тагове:
1
Programming Basics
MartinBG avatar MartinBG 2741 Точки
Best Answer

Четенето на две входни стойности на всяка итерация на while цикъла е рисково, тъй като втората стойност мое да е "End".

Трябва Ви брояч за продуктите за продан, чрез който да се определи дали плащането трябва да в брой или с карта.

Дефинирайте и инициализирайте променливите си там, където е необходимо и по възможност само на едно място в кода (имате command = input() на 2-ри и 32 ред)

 

Ето примерно решение на задачата:

expected_sum = int(input())

sold_cash = 0
sold_card = 0
total_cash = 0
total_card = 0
product_count = 0

while True:
    if total_cash + total_card >= expected_sum:
        print(f'Average CS: {total_cash / sold_cash:.2f}')
        print(f'Average CC: {total_card / sold_card:.2f}')
        break

    command = input()
    if command == 'End':
        print('Failed to collect required money for charity.')
        break

    price = int(command)

    product_count += 1
    is_cash_payment = product_count % 2 == 1

    if price <= 100 and is_cash_payment:
        total_cash += price
        sold_cash += 1
    elif price >= 10 and not is_cash_payment:
        total_card += price
        sold_card += 1
    else:
        print('Error in transaction!')
        continue

    print('Product sold!')

 

0
02/06/2020 00:15:15