Pessoal continuo desenvolvendo o menu do meu primeiro programa e depois de resolver o problema do switch agora me deparei com uma cena inusitada, vou postar o código inteiro aqui e explicar o por quê. #include <conio.h> #include <stdio.h> #include <dos.h> void main (void) { int modo, qtdtempo, qtdvoltas; char nomevermelho[20]; char nomeamarelo[20]; char sim; again:; clrscr(); printf("****************************************************************\n"); printf(" Programa Autorama V0.5\n"); printf("****************************************************************\n"); printf("========================Menu Principal==========================\n"); printf("Digite a opção desejada:\n"); printf("(1) - Jogo por tempo\n"); printf("(2) - Jogo por voltas\n"); printf("(3) - Sair\n\n"); modo = getch(); switch (modo) { case '1': printf("Quanto tempo? (Digite o tempo em minutos, mínimo 1 máximo 59)\n"); scanf("%d",&qtdtempo,"\n"); break; case '2': printf("Quantas voltas? (Mínimo 1 e máximo 99)\n"); scanf("%d",&qtdvoltas,"\n"); break; case '3': printf ("Saindo..."); delay(1000); exit(1); break; default: printf ("\nOpcao incorreta, tente novamente"); delay (1000); goto again; } printf("****************************************************************\n"); printf("=======================Dados dos Jogadores======================\n"); printf("Digite o Nome do piloto do carro vermelho:\n"); scanf("%s ",&nomevermelho); printf("\nDigite o Nome do piloto do carro amarelo:\n"); scanf("%s",&nomeamarelo); printf("****************************************************************\n"); printf("=======================Verifique os dados=======================\n"); printf("%s pilotará o carro vermelho\n",nomevermelho); printf("%s pilotará o carro amarelo\n",nomeamarelo); if (modo=='1') { printf("Modo de jogo selecionado: Jogo por tempo\n"); printf("Vence quem tiver o maior numero de voltas no final de %d minutos\n",qtdtempo); } else { printf("Modo de jogo selecionado: Jogo por voltas\n"); printf("Vence quem atingir primeiro as %d voltas\n", qtdvoltas); } printf("Dados corretos? (Pressione S para sim e N para Não)\n"); sim=getch(); if (sim=='n') { goto again; } } Bem acontece o seguinte o programa roda bem até chegar aqui printf("Digite o Nome do piloto do carro vermelho:\n"); scanf("%s ",&nomevermelho); printf("\nDigite o Nome do piloto do carro amarelo:\n"); scanf("%s",&nomeamarelo); Neste momento ele mostra a mensagem do piloto do carro vermelho e pede para eu digitar algo scanf &nomeverlho funciona ok. porém após eu dar enter em vez dele me mostrar o printf nome do poiloto do carro amarelo, ele me pelo que eu digite mais alguma coisa o scanf &nomeamarelo, ai eu digito e só depois ele me mostra o printf(nome do carro amarelo). Se eu trocar o scanf por um gets conforme abaixo printf("Digite o Nome do piloto do carro vermelho:\n"); gets(nomevermelho); printf("\nDigite o Nome do piloto do carro amarelo:\n"); gets(nomeamarelo); Ele me mostra os dois printf e pede para eu digitar alguma coisa eu digito e isto é armazenado na nomeamarelo, porém ele nem sequer pede a do nomevermelho. Já quebrei a cabeça e não consegui entender o problema OBS: Sei que não se deve postar o código inteiro, mas postei porque se eu pegar apenas o pedaço citado e compilar um programa a desgraça funciona normalmente, só não funciona quando fica dentro deste código. Será que alguém me ajuda?