Ayuda con Std::String y clausula IF - c++

      • 9
      • mensajes
      • miembro desde
      • 05/09/12
    05/10/2012
    #1 Ayuda con Std::String y clausula IF - c++

    Buenas, soy nuevo en este subforo. Les cuento estoy aprendiendo por mi cuenta c++ con unos ejercicios que encontre en internet, y me tope con un problema que no se como resolver. El programa es un ejercicio en donde se piden ternas de numeros para calcular superficies de triangulos y despues se imprimen en pantalla. Hasta ahi bien, pero cuando se ejecutan las funciones que determinan si el triangulo es escaleno isosceles o equilatero y lo imprimen en pantalla no funcionan como corresponde. Sin importar que tipo de triangulo sea se imprime en pantalla siempre EQUILATERO aunque no ingrese triangulos equilateros. Adjunto todo el programa aunque creo que el problema esta o bien en la funcion imprimir_salida o en las que determinan el tipo de triangulo.

    Código:
    #include 
    #include 
    using namespace std;
    
    
    class Triangulo
    {
    public:
    int iorden;
    double fladoa;
    double fladob;
    double fladoc;
    double farea;
    };
    
    
    void ingreso_datos(double*,double*,double*);
    double calculo_area(double,double,double);
    bool equilatero(double,double,double);
    void imprimir_salida(int, Triangulo[]);
    bool isosceles(double,double,double);
    bool escaleno(double,double,double);
    bool es_triangulo(double,double,double);
    
    
    int main ()
    {
        int iNumerodeusuarios,iContador;
        double fPer;
        cout << "Numero de ternas a ingresar: ";
        cin >> iNumerodeusuarios;
        Triangulo * pArray1 = new Triangulo[iNumerodeusuarios];
    for (iContador=0;iContador0))
        {
        cout << "Ingrese el primer lado del triangulo:\n ";
        cin >> d;
        }
        while (!(e>0))
        {
        cout << "Ingrese el segundo lado del triangulo:\n ";
        cin >> e;
        }
        while (!(f>0))
        {
        cout << "Ingrese el tercer lado del triangulo:\n ";
        cin >> f;
        }
    *a=d;
    *b=e;
    *c=f;
    }
    
    
    double calculo_area(double a, double b, double c)
    {
        double r,fSper,fPrev;
        fSper=(a+b+c)/2;
        fPrev=fSper*(fSper-a)*(fSper-b)*(fSper-c);
        r=sqrt(fPrev);
        return r;
    
    
    
    
    }
    
    
    bool equilatero(double a, double b, double c)
    {
        if (a==b && b==c && a==c)
        {
         //cout << "Es un triangulo equilatero\n";
        return true;
        }
    }
    
    
    bool isosceles(double a, double b, double c)
    {
        if ((a==b && b!=c && a!=c) || (a==c && b!=c && b!=a) || (b==c && c!=a && b!=a))
        {
        return true;
        }
    }
    
    
    bool escaleno(double a, double b, double c)
    {
        if (a!=b && a!=c && b!=c)
        {
        return true;
        }
    
    
    }
    
    
    bool es_triangulo (double a, double b, double c)
    {
    if (a 
    Desde ya muchas gracias!
  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    2 comentarios / 256 Visitas

      • 17,260
      • mensajes
      • miembro desde
      • 09/09/05
    • Ars longa, vita brevis
    • Administrador
    06/10/2012
    #2 Re: Ayuda con Std::String y clausula IF - c++

    Agregales a las funciones que te verifican el tipo de triángulo el "return false" donde haga falta y vas a ver como automágicamente se soluciona todo. El problema es que el compilador no sabe qué evaluar (dado que tus funciones no devuelve nada si la condición que ponés no se cumple).

      • 9
      • mensajes
      • miembro desde
      • 05/09/12
    06/10/2012
    #3 Re: Ayuda con Std::String y clausula IF - c++

    Hecho. Funciona! Muchas gracias Luk1ll45!. Problema resuelto.