Contador negativo

14 respostas
F

Boa Tarde pessoal,
Alguem pode me ajudar onde esta o erro do meu simples programa?
O contador de numeros negativos não esta funcionando corretamente.

Obrigado

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int num, i, cont_neg;
    cont_neg==0;


    for (i=0;i<10;i++)
   {
        printf("digite o %i° numero", i+1);
        scanf("%i",&num);
   }

    if(num<0)
    {
             cont_neg++;
    }

    printf("ha %i negativo\n",cont_neg);



    system("PAUSE");
    return EXIT_SUCCESS;
}

14 Respostas

jpjcjbr

A sua verificação se o número é negativo não deveria estar dentro do for?

Desta maneira que você fez ele vai verificar se apenas o último número é negativo

Abs

giovanni_dalfre

Opa,

Então, você está realizando a checagem, se ele é negativo ou não, fora do FOR. Isso faz com que ele verifique apenas o ultimo numero lido.

Correção

for (i=0;i<10;i++)  
   {  
        printf("digite o %i° numero", i+1);  
        scanf("%i",&num);  

        if(num<0)  
        {   
             cont_neg++;  
         }  
   }  
  
   
  
    printf("ha %i negativo\n",cont_neg);
Rodrigo_Sasaki

Esse if não deveria estar dentro do for ?

Rodrigo_Sasaki

3 respostas seguidas hehehe :slight_smile:

CristianPalmaSola10

Bom pra inicio de conversa o programa não tao simples assim para vc, se fosse voce não estaria com problemas e naum recorreria ao forum

2º quando postar alguma coisa no forum diga o que não esta funcionando, naum simplesmente jogue seu codigo ai espera a resposta atras, nos ajude a te ajudar…

deixa de ser prequiçoso explique o problema…

E

Rapaiz, não tem uma coisa esquisita nesta linha não?

cont_neg==0;
Rodrigo_Sasaki

entanglement:
Rapaiz, não tem uma coisa esquisita nesta linha não?

cont_neg==0;


Nossa, que olho hahahaa
Não tinha reparado nisso não. Isso não deveria acusar algum problema durante a compilação ?

E

Não em absoluto. Não há nada na especificação do C++ que diga que isso é incorreto.

E

Rodrigo Sasaki:

Nossa, que olho hahahaa
Não tinha reparado nisso não.

Depois de algumas décadas programando em C++ eu aprendi algumas coisas chatas… a principal delas é que é muito fácil achar defeitos nos programas dos outros, mas nos seus próprios programas é que são elas.

F

Rodrigo Sasaki
Esse if não deveria estar dentro do for ?

Eu ja arrumei esta linha e o contador não esta funcionando corretamente.

Bom pra inicio de conversa o programa não tao simples assim para vc, se fosse voce não estaria com problemas e naum recorreria ao forum

2º quando postar alguma coisa no forum diga o que não esta funcionando, naum simplesmente jogue seu codigo ai espera a resposta atras, nos ajude a te ajudar…

deixa de ser prequiçoso explique o problema…

No primeiro post eu comentei o problema. Não era erro do programa e sim do programador que é iniciante ainda, por isso estou recorrendo aos colegas para me ajudar.


entanglement wrote:Rapaiz, não tem uma coisa esquisita nesta linha não?

view plaincopy to clipboardprint?

    cont_neg==0;

Nossa, que olho hahahaa
Não tinha reparado nisso não. Isso não deveria acusar algum problema durante a compilação ?

Não deu nenhum erro na compilação, amigo.

Rodrigo_Sasaki

entanglement:

Depois de algumas décadas programando em C++ eu aprendi algumas coisas chatas… a principal delas é que é muito fácil achar defeitos nos programas dos outros, mas nos seus próprios programas é que são elas.

Hahaha, isso torna você muito mais apto que eu pra tirar a dúvida do cara.

agora o == não serve para comparações como em Java?

Se sim, que valor terá cont_neg após essa linha?

F

Obrigado a todos pela ajuda,
Estou aprendendo muito com todos vocês.

Excelente Fórum!
:lol:

E

E não é para dar nenhum erro de compilação. Só que está errado :slight_smile:

// isto está errado porque não inicializa a variável com zero
cont_neg==0; 

// isto está certo
cont_neg = 0;

Não se esqueça: erro de compilação é como um erro de gramática - por exemplo, você dizer isto:

Um erro de execução é outra coisa. Por exemplo:

Se você não está morando na Lua, sabe que a segunda frase é mentirosa (“erro de execução”), embora esteja gramaticalmente correta (“não tem erro de compilação”).

Rodrigo_Sasaki

Ah, agora sim eu entendi hahahaha, e vi o porque não é um erro.

Ótima analogia (apesar de não entender nada de futebol eu entendi a explicação) :slight_smile:

Criado 29 de novembro de 2012
Ultima resposta 29 de nov. de 2012
Respostas 14
Participantes 6