I recently did the mario.c code, and it works perfectly. However, while running CS50, I'm getting :( faces due to the fact I re-prompt with the same text when they enter a 0(enter a number between 1-23...) rather than a blank reprompt like the example. Essentially, this is an improvement as far as I'm concerned.

So, Check50 gives me a :( even though I handle the 0 integer correctly due to the description and looping if nature of my prompt. Is it likely I'll lose points for this? Or does CS50 staff read through this a bit as they grade and accept this amount of variation?

1 Answer 1


The psets are graded by the same check50 automated grading program. Because there are thousands of students taking this class online, this is the only way to do this. CS50x staff do not look at the submitted programs.

The check50 program expects exact output from the programs submitted. Anything missing or anything extra, including spaces, line feeds or altered text causes the test to fail - it's that simple.

This also teaches another lesson, even though it is never discussed. While you may think that your change is an improvement, it is an unauthorized change to the program specification. Customers generally don't like surprises like unauthorized changes. The lesson here is to write programs to the exact specification of the program, nothing more and nothing less. In the future, you'll be able to discuss improvements with customers and employers and get their approvals as part of the design process. Hopefully, you'll learn to get them approved before making the changes, but that's not part of this class.

In short, you need to write your code to meet the specification. CHECK50 has worked for thousands of students and this is what makes classes like this both possible and free.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .