Yes, that's the whole point of the exercise, to introduce you to the concept of "formatted input". If you specify a format for the input, and the user enters something in a different format, then the result will not be what the user expected. Ideally the user interface should specify that a should be 1 digit, and throw an error when the user enters 123456 instead of just accepting it and continuing.

When dealing with users maximum flexibility is preferable. They *will* enter stupid input, and it's your program's responsibility to sort out what they've done and respond accordingly. Formatted input is fine if you can guarantee the input format, but you can't when it comes to users, so this is why programmers (who aren't in class any more) *don't* use scanf and *do* use more generic functions like gets.