ERROR EN PROGRAMA [Error] a function-definition is not allowed here before '{' t

Iniciado por GGMaelstrom, 8 Julio 2019, 22:15 PM

0 Miembros y 1 Visitante están viendo este tema.

GGMaelstrom

Solucionado

digimikeh

El switch-case esta cortado por las definiciones de funciones. Si metes las funciones al final, se acaba el problema:

Código (cpp) [Seleccionar]

#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <stdlib.h>

using namespace std;

void pausa();

struct Nodo{
  int dato;
  Nodo *siguiente;
};




//Prototipos de Función
void agregarPila(Nodo *&,int);
void sacarPila(Nodo *&,int &);
void mostrarPila(Nodo *&,int &);
int main(){
   bool bandera=false;
   char tecla;

   do{
       system("cls");
       cin.clear();
       cout << "Calculadora" << endl;
       cout << "-----------" << endl << endl;
       cout << "\t1 .- Sumar" << endl;
       cout << "\t2 .- Restar" << endl;;
       cout << "elige una opcion: ";

       cin >> tecla;

     switch(tecla){
        case '1':
               {
               Nodo *pila = NULL;   //Inicializamos pila
               int dato, aux;
               char rpt;
               aux=5;
               do{ //Pedimos todos los elementos de la pila
                   //cout<<"Digite un numero: ";
                   //cin>>dato;
                   if (aux<=0||aux>5){
                       cout<<"Alcanzo los 5 digitos: ";
                       break;
                   }
                   cout<<"Digite un numero: ";
                   cin>>dato;
                   
                   if(dato==0){
                       if((aux==5)||(aux==4)||(aux==2)||(aux==1)||(aux==0)){
                           //cout<<aux-1;
                           agregarPila(pila,dato);
                       } else {
                           cout<<"\nNO ES UN VALOR ACEPTADO: ";
                           break;
                       }
                       
                       aux=aux-1;
                       cout<<aux;
                   }
               
               
               if(dato==1){
                   if(aux==3){
                       //cout<<aux-1;
                       agregarPila(pila,dato);
                   } else {
                       cout<<"\nNO ES UN VALOR ACEPTADO: ";
                       break;
                   }
                   aux=aux-1;
                   cout<<aux;
               }
               
               if (aux<=0 || aux>5){
                   cout<<"\n\nAlcanzo los 5 digitos: ";
                   break;
               }          
     
               cout<<"\nDesea agregar otro numero a pila(s/n): ";
               cin>>rpt;
 
           } while((rpt == 's')||(rpt=='S'));
 
     //if (aux<=0||aux>5)
     //{
        //   cout<<"Alcanzo los 5 digitos: ";
           //break;
       //}
 
 
  //cout<<"\nIMPRESION #2: \n";
  //cout<<"\nIMPRESION #2: \n";
           cout<<"Mostrando los elementos de la pila en la columna ENTRADA: ";
  //while(pila != NULL){
  //   sacarPila(pila,dato);
     
  //   if(pila != NULL){
  //      cout<<dato<<" , ";
  //   }
  //   else{
  //      cout<<dato<<".";
  //   }
  //}
 

  //cout<<"\n\n\nIMPRESION #2: \n";
           cout<<"\n\tESTADO\tENTRADA\tRESULTADO\n";
 
           int a=0;
           int b=0;
 
 
           while(pila != NULL){
               sacarPila(pila,dato);
     
               if(pila != NULL){
                   cout<<"\t q"<<a<<"\t "<<dato<<"\t q"<<b<<"\n";
                   if((a==0)&&(b==0)){
                       a=0+dato;
                       b=0+dato;
                   } else {
                       a=1;
                       b=1;
                   }
               } else{
                   cout<<"\t q"<<a<<"\t "<<dato<<"\t q"<<b<<"\n";
               }
           }
 
   
           getch();
           return 0;
           
       }


        case '2':
           system("cls");
           cout << "Has elejido Restar.\n";
           pausa();
           break;

        default:
           system("cls");
           cout << "Opcion no valida.\a\n";
           pausa();
           break;
     }
   }while(bandera!=true);

   return 0;
}

void pausa()
{
   cout << "Pulsa una tecla para continuar...";
   getwchar();
   getwchar();
}

void agregarPila(Nodo *&pila,int n){
  Nodo *nuevo_nodo = new Nodo();
  nuevo_nodo->dato = n;
  nuevo_nodo->siguiente = pila;
  pila = nuevo_nodo;
 
  cout<<"\n\tElemento "<<n<<" agregado a PILA correctamente"<<"\n";
}
void sacarPila(Nodo *&pila,int &n){
  Nodo *aux = pila;
  n = aux->dato;
  pila = aux->siguiente;
  delete aux;
}
void mostrarPila(Nodo *&pila,int &n){
  Nodo *aux = pila;
  n = aux->dato;
  pila = aux->siguiente;
  delete aux;
}
Dungeons & dragons;
dragons.Attack();