Olá pessoal, este é meu primeiro post e gostaria de pedir a vossa ajuda. O problema é o seguinte... Eu criei um programa em C/C++ que minha professa pediu na faculdade. O programa está rodando e funcionando, porém estou com um pequeno problema e não consigo solucioná-lo. Quantos problemas existem no programa? Só existe 1 problema. Qual o problema? O problema é o seguinte. Como vocês podem observar no código do programa, a professora pediu para fazer um MENU, e é aí que está o problema (eu acho), quando eu escolho a opção 1, ele funciona como o planejado, ele chama o "void ler()" e roda perfeitamente. Quando escolho a opção 3 ele chama a função "void sair()" perfeitamente. O problema é que quando eu chamo a opção 2, ele não executa o "void exibir", alguém sabe me dizer o por quê? Este é o programa. #include <stdlib.h> #include <stdio.h> #include <string.h> struct ficha { char cor,comb, seguro, nome_pro[40], placa, modelo; int ano_fab, ano_mod, venc_seg,km_rod,hab_desde; }carro; //RECEBE OS DADOS void ler() { system("cls"); char verif; printf("Nome do proprietario: "); fflush(stdin); gets(carro.nome_pro); printf("Hablitado desde: "); scanf("%d", &carro.hab_desde); printf("Placa do veiculo: "); scanf("%s", &carro.placa); printf("Modelo: "); scanf("%s", &carro.modelo); printf("Cor: "); scanf("%s", &carro.cor); printf("Combustivel: "); scanf("%s", &carro.comb); printf("Ano de fabricacao: "); scanf("%d", &carro.ano_fab); printf("Ano modelo: "); scanf("%d", &carro.ano_mod); printf("Possui serguro? S/N\n"); scanf("%s",&verif); if((verif = 's') || (verif = 'S')) { printf("Ano de Vencimento do seguro: "); scanf("%d", &carro.venc_seg); strcpy(&carro.seguro, "SIM"); } else if((verif = 'n') || (verif = 'N')) strcpy(&carro.seguro, "não"); printf("Km rodado: "); scanf("%d", &carro.km_rod); system("cls"); } //EXIBE OS DADOS void exibir() { printf("Proprietario: %s", carro.nome_pro); printf("\nHabilitado desde: %d", carro.hab_desde); printf("\nPlaca do veiculo: %s", carro.placa); printf("\nModelo: %s", carro.modelo); printf("\nCor: %s", carro.cor); printf("\nCombustivel: %s", carro.comb); printf("\nAno de Fabricacao: %d", carro.ano_fab); printf("\nAno Modelo: %d", carro.ano_mod); //Alguém pode me dizer se esta parte está correta?(O programa rodou...) if (carro.seguro == 'SIM') printf("\nSeguro: %s", carro.seguro); else printf("\nSeguro: %s", carro.seguro); printf("Km rodado: \n\n", carro.km_rod) ; system("pause"); } //FINALIZA O PROGRAMA void sair() { system("exit"); } main() { int opcao; do { printf("\t\t\tMENU\n"); printf ("\tEscolha a opcao\n"); printf ("\t[1] - Ler\n"); printf ("\t[2] - Exibir\n"); printf ("\t[3] - Sair\n\t"); scanf("%d",&opcao); while (opcao < 1 || opcao >3) scanf("%d",&opcao); switch (opcao) { case 1: ler(); break; case 2: exibir(); break; case 3: sair(); break; } } while (opcao != 3 ); } [/codebox] Extra sobre o programa void ler() -> Chama a função que recebe os dados. void exibir() -> Exibe o que foi adicionado na função ler.