[C con Clase] Problema con else en función

Marcelo marcefont en gmail.com
Dom Sep 2 16:03:55 CEST 2012


Hola, recien me estoy iniciando en C++. Uso Borland Builder 6 y he hecho una modificación en un programa que antes funcionaba correctamente, si bien es muy pequeña, ahora no funciona y me da un error en el 'else' final. El código es el siguiente:



#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <conio.h>

//---------------------------------------------------------------------------

#pragma argsused
float calcular ();
int ban = 0;


float main(int argc, char* argv[])
{
    float total;
    total = calcular ();
    if (!ban)
    cout << "\n\n\tEl resultado de su operacion es: " << total;
    else cout << "\n\n\tLa operación no se pudo realizar. ";

    system ("pause");
    return 0;
}

float calcular ()
{
    int opc , a , b ;
    cout << "¿Que operacion desea realizar?\n 1 = Suma; 2 = Resta; 3 = Multiplicar; 4 = Dividir: ";
    cin >> opc;
    cout << "Ingrese el primer valor: "; cin >> a;
    cout << "\nIngrese el segundo valor: "; cin >> b;
    switch (opc) {
        case 1:
            return a + b;
            break;
        case 2:
            return a - b;
            break;
        case 3:
            return a * b;
            break;
        case 4:
            if (!b) cout << "No se puede dividir por 0.";
            ban = 1;
            else return a / b;
                    }
}

y éste el error que me da, lo que agregué es el marcador 'ban' para que no me muestre el mensaje de resultado si el dividendo es 0.

[C++ Error] Unit1.cpp(48): E2054 Misplaced else

Desde ya muchísimas gracias y felicitaciones por la página, está muy buena y es de mucha ayuda. Estoy haciendo un curso de C++ y la página me ayuda para ampliar conocimientos. :-(


Más información sobre la lista de distribución Cconclase