# Quiz Program Compiler

A fun programming exercise is to write a program that quizzes the user from a set list of questions and answers. However, this task goes a level beyond that.

• Write a program/func/etc. that takes two lists: A list of questions and a list of answers.
• Output a program that quizzes the user.
• The output program should ask each question on a separate line, which each question with a colon and space at the end like, What is 2+2:.
• After the user answers all the questions, output a newline, and then one on each line, questions correct, questions wrong, and percentage calculation (rounded to 2 decimal places) as such (the brackets are user input):

What is the meaning of life, the universe, and everything: <42>
Am I awesome(Yes/No): <No>
What is 2+2: <4>

Number Correct: 2
Number Wrong: 1
Score: 2 / 3 * 100 = 66.67%


## Scoring

• You are scored on the size of your compiler program.
• This is so shortes code in bytes wins!
• Bonus: Score *.9 if you implement a flag in your compiler that makes the output program randomize question order.
• If none are correct, or all are wrong, should that line be skipped? – Ypnypn Nov 25 '15 at 5:28
• @Ypnypn no, they should always be there. – Maltysen Nov 25 '15 at 12:04

# CJam, 105 99 bytes

{{": "+ol}%.=_:+\,:LX$-X$LX$e2Ld/]" Number Correct: %d Number Wrong: %d Score: %d / %d * 100 = %.2f%%"e%}  This defines an anonymous function. The code is 110 bytes long and qualifies for the × 0.9 randomization bonus. ### Test run $ cat qna.cjam
[
[
"42"
"Yes"
"4"
]

[
"What is the meaning of life, the universe, and everything"
"Am I awesome(Yes/No)"
"What is 2+2"
]
]

{zmrz~{": "+ol}%.=_:+\,:LX$-X$LX$e2Ld/]" Number Correct: %d Number Wrong: %d Score: %d / %d * 100 = %.2f%%"e%} ~$ cjam qna.cjam
What is 2+2: 4
Am I awesome(Yes/No): No
What is the meaning of life, the universe, and everything: 42

Number Correct: 2
Number Wrong: 1
Score: 2 / 3 * 100 = 66.67%

• Wow, this is the longest CJam answer I have ever seen! – J Atkin Nov 25 '15 at 3:13
• – Dennis Nov 25 '15 at 3:24