5.4 · exercise
The macro that ate my message
warning
This program is broken. Find the bug and fix it so the checks pass.
This program reads a ticket count and a price in cents, multiplies them, and prints the bill on one line. With the input 3 125 it should print:
count = 3, price = 125, total = 375
Run it and read what it prints instead. The multiply is fine; the words in the message are what went wrong.
m4 reads the whole file before the assembler does, and it replaces every whole word that matches a define name, even inside a quoted string. Fix the program so the message prints exactly as shown above, without changing the text between the quotes.
What is checked
- with the input
3 125the bill line matches word for word - the program returns 0
- the checker also runs a few inputs you do not see, including a count of zero, a negative price, and a total too big for 32 bits
specification
stdin3 125
stdoutprints the right output
exitexits with the right code
hiddenright output and exit code on 4 more inputs you do not see
We run your program on the input above and on the hidden ones, and compare what it does. Nothing is matched against a stored solution.