Hellsius 0 Denunciar post Postado Abril 3, 2011 Pessoal, sou iniciante em programação (linguagem C). Tentei fazer o seguinte exercicio: "Crie um programa que tenha como entrada o sexo das pessoas e se elas tem bronquite ou não. Em tela devera aparecer o total de pessoas do sexo masculino e feminino que tenham bronquite e tambem devera aparecer as pessoas do sexo masculino e feminino que não tenham bronquite." Segue o Codigo Fonte que fiz do programa e logo abaixo dele segue tambem o que ocorre. #include <stdio.h> #include <math.h> #include <conio.h> int main () { // Variaveis char sexo, bronquite, continuar='S'; int soma_mn=0, soma_ms=0, soma_fn=0, soma_fs=0; // Entrada de Dados while(toupper(continuar)=='S') { // I_while printf("Informe o sexo [M]Masculino [F]Feminina: "); scanf("%c", &sexo); printf("Voce ja tem ou ja teve bronquite? [s]Sim [N]Nao"); scanf("%c", &bronquite); // Processamento if(toupper(sexo)=='M' && toupper(bronquite)=='N') { soma_mn = soma_mn+1; printf("\nA quantidade de pessoas do sexo MASCULINO sem BRONQUITE sao: %d\n", soma_mn); } else if(toupper(sexo)=='M' && toupper(bronquite)=='S') { soma_ms = soma_ms+1; printf("\nA quantidade de pessoas do sexo MASCULINO com BRONQUITE sao: %d\n", soma_ms); } else if(toupper(sexo)=='F' && toupper(bronquite)=='N') { soma_fn = soma_fn+1; printf("\nA quantidade de pessoas do sexo FEMININO sem BRONQUITE sao: %d\n", soma_fn); } else if(toupper(sexo)=='F' && toupper(bronquite)=='S') { soma_fs = soma_fs+1; printf("\nA quantidade de pessoas do sexo FEMININO com BRONQUITE são: %d\n", soma_fs); } else printf("\nPor favor informe <M/F> para o sexo e <S/N> para informar a existencia de bronquite\n"); printf("\nDeseja continuar <S/N> : \n"); scanf("%c", &continuar); } // F_while printf("MS=%d, MC=%d, FS=%d, FC=%d ",soma_ms, soma_ms, soma_fn, soma_fs); // MS=MAsculino SEM bronquite, MC=Masculino COM bronquite, FS=Feminino SEM bronquite, FC=Feminino COM bronquite. // Final do Codigo getch(); return 0; } Depois de inserir o sexo conforme esta linha: printf("Informe o sexo [M]Masculino [F]Feminina: "); scanf("%c", &sexo); Ele exibe a linha de baixo na tela e não deixa inserir o dado para a variavel bronquite para esta linha: else printf("\nPor favor informe <M/F> para o sexo e <S/N> para informar a existencia de bronquite\n"); Desde ja agradeço a ajuda, abraços Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Abril 3, 2011 Procure um tópico sobre \n perdido no buffer de entrada. Deve estar na parte de destaques do fórum. Compartilhar este post Link para o post Compartilhar em outros sites
Hellsius 0 Denunciar post Postado Abril 3, 2011 Não encontrei nada no site desse genero em destaque. Tentei tirar os \n e nada. Obrigado pela atenção que esta tendo. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Abril 4, 2011 Sugeira no buffer de entrada: http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ NÃO use fflush(stdin). Esse deve ser o tópico que a Isis pediu pra vce olhar... Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
Hellsius 0 Denunciar post Postado Abril 4, 2011 Entendi, hehe Li o conteudo da pagina e obrigado mesmo, depois que coloquei %*c nos scanf's funcionou tudo direitinho. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites