Switch em C não está rodando!

2 respostas Resolvido
S

Pessoal, estou aprendendo programação em casa e fiz um algoritmo em C que recebe o tipo de usuário de uma biblioteca (S para alunos e P para professores) e a classificação do livro (A e B). Livros do tipo A podem ser locados por qualquer usuário enquanto livros do tipo B só podem ser locados por professores.
Entretanto, ao digitar o tipo de usuário, o algoritmo está encerrando. Aparece o printf("Informe a classificacao do livro: A ou B: "), seguido do printf(“Classificacao invalida”) e encerra o programa, independentemente do caractere que digita para o tipo de usuario. Alguém poderia me ajudar a verificar o que estou errando???

Segue o código completo:

#include<stdio.h>
#include<stdlib.h>

int main(){
char tipo_usuario, class_livro;

printf("Informe o tipo de usuario: S - aluno e P - professor: ");
scanf("%c", &tipo_usuario);
printf("Informe a classificacao do livro: A ou B: ");
scanf("%c", &class_livro);

switch(tipo_usuario){
	case 'S':
		if(class_livro == 'A'){
			printf("Voce PODE locar o livro\n");
		}
		else if(class_livro == 'B'){
			printf("Voce NAO pode locar o livro\n");
		}
		else{
			printf("Classificacao INVALIDA\n");
		}
		break;
	case 'P':
		if(class_livro == 'A' || class_livro == 'B'){
			printf("Voce PODE locar o livro\n");
		}
		else{
			printf("Classificacao INVALIDA\n");
		}
		break;
	default:
		printf("Tipo de usuario INVALIDO\n");
}
system("pause");
return (0);

}

2 Respostas

D
Solucao aceita

Explicação

S

Vlw cara, muito obrigado. Agora funcionou direitinho. Quebrei a cabeça achando que era erro na minha lógica, mas foi erro de conhecimento da linguagem mesmo. Vlw!

Criado 10 de março de 2020
Ultima resposta 10 de mar. de 2020
Respostas 2
Participantes 2