# pset6 - greedy doesn't print answer- just returns the input. Where have I gone wrong?

import cs50

while True:

``````    print ("O! Hail!, How Much Change Is Owed?")

n = cs50.get_float()

if n >= 0:

break

q = 25
q1 = 0
d = 10
d1= 0
ni = 5
ni1 = 0
p = 1

nocq = 0

nocd = 0

nocni = 0

nocp = 0

change = 0

count = 0

change = round (n * 100)

if change >= q:

q1 = change % q

nocq = round ((change - q1) / q)

count = nocq

if q1 >= d:

d1 = change % d

nocd = round ((q1 - d1) / d)

count = count + nocd

elif change < q and change >= d:

d1 = change % d

nocd = round ((change - d1) / d)

count = count + nocd

if d1 >= ni:

ni1 = change % ni

nocni = round((d1 - ni1) / ni)

count = count + nocni

elif change < d and change >= ni:

ni1 = change % ni

nocni = round ((change - ni1) / ni)

count = count + nocni

if q1 < d1 and q1 < ni:

q1 = p

if d1 < ni1:

d1 = p

elif change < q and change < d and change < ni:

change = p

count = count + p

print (count)

print ()
``````
• To properly format this code: edit the question, select the code, click the {} in the format bar. Mar 29, 2017 at 11:05

``````if n >= 0:
• @curiouskiwi is correct. The code after your `while` loop is indented, thus making ALL your code part of the `while` loop. If your intention is to make something resembling a do/while loop, simply un-indent the rest of your code. :-) Mar 30, 2017 at 13:14