Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Problema:
Programa em C que leia N valores inteiros e encerre
a 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
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
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!
>
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.
>
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.
Olhe bem onde está o if: fora do loop de leitura.