Ir ao conteúdo

Posts recomendados

Postado

Boa tarde.

 

Estou re-estudando programação porque fiquei anos sem programar nada. E agora estou me deparando com uma coisa estranha: qualquer função que eu coloque no código não retorna o valor correto. Por exemplo esse código aqui:

 

#include <iostream>

using namespace std;

 

int m (int a, int b){
    int c;
    c=a+b;
    return c;
}

int main()
{
    int n1,n2,n3=m(n1,n2);

    cout << "Digite um numero: ";

    cin >> n1 >> n2;

    cout << n3;

    return 0;
}

 

E só para somar duas variáveis, e se eu colocar 2+2 por exemplo, tem hora que aparece 93 ou 11256388 ou outro valor. Já peguei outras funções e também não funcionam, nem aquelas de exercícios resolvidos. Eu usando o Falcon C++, mas testei no Code Blocks e no Dev C++ e todos estão ocorrendo o mesmo erro. Alguma sugestão?

Postado

Você está chamando a função de soma antes de fazer a inserção de valores nas variáveis n1 e n2, então o algoritmo passa esses valores com o que está preenchido no campo de memória, o chamado "lixo de memória". Faça a atribuição de n3 à chamada da função após as variáveis n1 e n2 obterem os valores passados. Creio que resolverá o problema.

 

EDIT: 

#include <iostream>

using namespace std;

 

int m (int a, int b){
    int c;
    c=a+b;
    return c;
}

int main()
{
    int n1,n2,n3;

    cout << "Digite um numero: ";

    cin >> n1 >> n2;

    n3=m(n1,n2);

    cout << n3;

    return 0;
}

  • Obrigado 1
Postado
22 minutos atrás, dsgeverton disse:

Você está chamando a função de soma antes de fazer a inserção de valores nas variáveis n1 e n2, então o algoritmo passa esses valores com o que está preenchido no campo de memória, o chamado "lixo de memória". Faça a atribuição de n3 à chamada da função após as variáveis n1 e n2 obterem os valores passados. Creio que resolverá o problema.

 

EDIT: 

#include <iostream>

using namespace std;

 

int m (int a, int b){
    int c;
    c=a+b;
    return c;
}

int main()
{
    int n1,n2,n3;

    cout << "Digite um numero: ";

    cin >> n1 >> n2;

    n3=m(n1,n2);

    cout << n3;

    return 0;
}

 

MMMMMUUUUUIIIITTTTTOOOOO OBRIGADO CARA!!!!!

 

Era uma coisa boba e nem tinha percebido.

Valeu!

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!