1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Programa básico em c++

Discussão em 'Programação' iniciada por Rucacool, 21 de Março de 2006. (Respostas: 6; Visualizações: 3964)

  1. Rucacool

    Rucacool Power Member

    Boas, estou no inicio da programação e tenhu uma duvida aqui num programa.
    Eu não conssigo ver o erro que isto tem:
    #include<iostream>

    using namespace std;

    double maximo ( double, double, double ); //prototipo fun

    int main(){

    double numero1;
    double numero2;
    double numero3;

    cout << "Introduza tres numeros decimais:";
    cin >> numero1 >> numero2 >> numero3;


    cout << "o maximo e:";
    cout << maximo (numero1,numero2,numero3) <<endl;


    return 0;

    }
    double maximo (double x, double y, double z){

    double max=x;

    if (y > max)
    max = y;

    if (z > max)
    max = z;
    if (x == max && z == max && y == max)
    cout<<"sao iguais";
    }

    se aguem consseguir ve-lo agradecia que mo dicessem.
    Obrigado
    Cumps...:004:
     
  2. Black_Gamer

    Black_Gamer Power Member

    Boas! Em primeiro lugar a função máximo deve retornar um valor e tu estás a fazer um cout, portanto o cabeçalho não seria double, mas sim, void. Porque não usas um vector e carregas para lá os numeros, fazes um sort e retornas o último valor do vector? Assim terias até a possibilidade de usar mais do que três numeros ;)
     
  3. turbulence

    turbulence Power Member

    Não falta ali no prototipo os x, y e z?
     
  4. HecKel

    HecKel The WORM

    Boas!

    Além do que já disseram anteriormente, e bem, sugiro-te o seguinte: Em vez de um cout dentro da função máximo, devolve um dos valores, pois o máximo de 3 numeros iguais são eles mesmos, não é a função máximo que deve dizer que são iguais, mas sim fora desta.

    Uma função deve retornar um valor e não escrever para o ecrã, isto são os procedimentos que fazem (em C e C++ são os void's), na minha opinião, este será um bom hábito de programação que deves ter em conta, nunca imprimir nada para o ecrã dentro de uma função (excepto handlers de erros, claro). Desta forma consegues funções mais transportáveis para outros programas, mais compreensiveis para outros programadores e mais "standards".

    Sobre o teu erro em concreto..., faz o que o turbulence diz que deve resolver-te metade dos problemas :P A outra metade é que não devolves nada numa função que exige "return" quando os 3 valores são iguais :)

    abraços, HecKel
     
  5. acrobat

    acrobat Power Member

    os cabeçalhos podem, e devem, só indicar os tipos! As variáveis não fazem sentido num cabeçalho, embora muita genta as ponha lá.
     
  6. Rucacool

    Rucacool Power Member

    Obrigado pela ajuda.
    cumps...:004:
     
  7. Tuaregue

    Tuaregue Power Member

    por acaso falta um return max, dentro da função.
     

Partilhar esta Página