Kabs 0 Denunciar post Postado Março 1, 2013 Problema: Programa em C que leia N valores inteiros e encerrea execução ao ser digitado o valor -1. Mostre quantos valores positivos foram informados. nt main() { int valorN; int contador=0; do { printf("Digite um Valor Inteiro:\n"); scanf("%i", &valorN); } while (valorN!=-1);{ if (valorN>0){ contador++; } } printf("\nA Quantidade de Valores positivos eh: %i\n", contador); system("pause"); return 0; } Ele não ta contando quando o valor é positivo, o printf sempre sai zero Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 1, 2013 Olhe bem onde está o if: fora do loop de leitura. Compartilhar este post Link para o post Compartilhar em outros sites
Kabs 0 Denunciar post Postado Março 1, 2013 Olhe bem onde está o if: fora do loop de leitura. Mas a logica correta não seria: -O valor digitado é verificado no while se o valor for positivo é efetuado o incremento, com isso o if estaria dentro do while Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Março 1, 2013 Você está confundido um while normal com um do while. Ao utilizar o do while. O código compreendido no laço de repetição, é o que está dentro das chaves após o do. http://pt.wikibooks.org/wiki/Programar_em_C/Controle_de_fluxo#do_..._while Espero ter ajudado, FLW! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 1, 2013 Mas a logica correta não seria: -O valor digitado é verificado no while se o valor for positivo é efetuado o incremento, com isso o if estaria dentro do while Leia o código com atenção. Após a condição do while existe um ';' e aí sim vem o bloco do if. O if está no lugar errado, fora do loop de leitura. Compartilhar este post Link para o post Compartilhar em outros sites
Kabs 0 Denunciar post Postado Março 1, 2013 Você está confundido um while normal com um do while. Ao utilizar o do while. O código compreendido no laço de repetição, é o que está dentro das chaves após o do. http://pt.wikibooks.org/wiki/Programar_em_C/Controle_de_fluxo#do_..._while Espero ter ajudado, FLW! Ahh cara verdade, pensei que o laço seria como um while mesmo, pela sua explicação entendi. Obrigado. Leia o código com atenção. Após a condição do while existe um ';' e aí sim vem o bloco do if. O if está no lugar errado, fora do loop de leitura. Entendi aonde estava o erro. São erros de quem está aprendendo. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites