Acabei de responder as duas primeiras dúvidas. Veja as respostas aqui e aqui.
Quando à dúvida nova, as duas coisas são aceitáveis. Fica a seu critério a escolha entre apresentar um erro quando a for maior que b, ou ser mais "amigável e compreensiva" com o usuário e corrigir o erro dele. No segundo caso seria bom apresentar pelo menos uma mensagem avisando o usuário que ele digitou a > b e que o programa considerou que o a era o b e vice-versa...
Fórum