Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kabs

Não consigo Adicionar soma ao contador

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.