Informática, perguntado por diegors11, 1 ano atrás

Programação C/C++

Boa noite a todos, estou começando agora a programar em linguagem C.e acabo de aprender a usar o comando "Switch" no lugar de "if".
Porem o programa mesmo rodando sem erro, apresenta um comportamento estranho..
O programa serve para falar qual o mês, referente ao numero digitado ( de 1 a 12 )Quando digito o primeiro numero o programa já me da instantaneamente o mês. 
Ex: digitando 2, automaticamente é mostrado fevereiro, mas se isso é mostrado instantaneamente como posso digitar mês 11, 12, ou um numero maior ?
segue o código em TXT:

Anexos:

Soluções para a tarefa

Respondido por DennisRitchie
2
Olá amigo,
o primeiro erro no código é que você declarou a variável numero como do tipo int (inteiro), sendo que você usou a função getch, que server apenas para variáveis do tipo char (caractere).
O problema que o programa apresentou.. é que a função getch, só pode ler um caractere...quando você colocar dois caracteres o programa irá mostrar somente o resultado do primeiro caractere digitado...por isso só funciona com um caractere.
Nesse caso seria melhor você usar a função scanf, pois assim ela irá capturar o número que você digitar independentemente de quantos algarismos o número tiver.
Exemplo: se você digitar o número 12, a função scanf irá ler os algarismos digitados...e logo depois o programa irá mostra o mês referente ao número 12.
Eu editei o código..e como foi declarada a variável numero do tipo int, o switch deve receber um valor inteiro..Então eu retirei as aspas simples dos números que ficam depois do case, pois as aspas simples só servem para caracteres.
Veja o código editado:

Anexos:

diegors11: Obrigado amogo. resposta clara e muito objetiva. fico muito grato!
Perguntas interessantes