Problema con "misplaced else"

Iniciado por Riverxz, 21 Agosto 2016, 20:42 PM

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

Riverxz

Buenas  :D, recien estoy comenzando a programar el C++  y tengo el siguiente problema.
El programa debe recibir 3 notas, validarlas (entre 0 y 20), eliminar la menor y calcular el promedio. Mi problema está al validar la tercera nota, pues el programa manda el error "misplaced else"  :o
Aqui les dejo mi código:

Usuario: UNI
la clave: 100
//definir librerias
# include<iostream>
# include<stdlib.h>
# include<stdlib.h>
# include<conio.h>
# include<stdio.h>
# include<time.h>
# include<windows.h>
# include<iomanip>

# define linea "------------------------------------------------------------"

void main ()
{   char user[10];
   int psw,pc1,pc2,pc3;
  system("color 1B");system("title el mejor programa del mundo®");
  gotoxy(20,3);cout<<"MODELO DE VALIDACION";
  gotoxy(10,8);cout<<linea;
  gotoxy(10,15);cout<<linea;

   // getche();//ver mis resultados temporalmente

//lectura de datos

gotoxy(15,11);cout<<"usuario = "; gets(user);
gotoxy(25,11);cout<<"****";
gotoxy(15,13);cout<<"clave = ";cin>>psw;
gotoxy(23,13);cout<<"***";
getche();
if((strcmp(strupr(user),"UNI")==0)&&(psw==100))
   {clrscr();system("color 3A");
      gotoxy(10,4);cout<<"bienvenido.....";
      getche();
            gotoxy(10,4);cout<<" calcular promedio...";
            gotoxy(5,5);cout<<linea;

            gotoxy(15,6);cout<<"Pc1="; cin>>pc1;
            if(pc1>=0 && pc1<=20)
             {
              gotoxy(15,10);cout<<"Correcto!";
              gotoxy(10,12);cout<<"PC2= ";cin>>pc2;
                if(pc2>=0 && pc2<=20)
                 {
                  gotoxy(15,13);cout<<"Correcto!";
                  gotoxy(15,15);cout<<"PC3= ";cin>>pc3;
                    if(pc3>=0 && pc3<=20)
                    {
                      gotoxy(15,13);cout<<"Correcto!";

                      //busqueda del nùmero menor
                      int menor=20;

                      if(menor>pc1)
                      {menor=pc1;
                      }
                      if(menor>pc2)
                      {menor=pc2;
                      };
                      if(menor>pc3)
                      {menor=pc3;
                      }
                      gotoxy(15,17);cout<<"MENOR NOTA = "<<menor;
                      float pp;
                      pp=((pc1+pc2+pc3)-menor)/2.0;
                      gotoxy(15,19);cout<<"Promedio... = "<<pp;
                      gotoxy(15,20);
                      cout<<setw(10)<<setprecision(3)<<pp;
                    }
                    else
                    {
                      gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                    }
                else
                 {
                  gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                 }
             }
            else
             {
               gotoxy(39,12);cout<<"Ha ingresado mal los datos";
             }




   }
else
{
   clrscr();system("color 4A");
    gotoxy(30,12);cout<<"Sr. sus datos estàn errados";
}
getche ();//ver mis resultados temporalmente;
gotoxy(30,22);system("pause");//resultados en pantalla y mensaje "presina cualquier tecla para continuar";


}
}

AlbertoBSD

#1
Hola antes que nada podrias decirnos en que linea esta el error?

Muchos no se molestan en leer codigos asi de largos por mas que quieran ayudar el tiempo invertido seria "excesivo"

Trata de colocar tu codigo en la etiqueta geshi:

int main() {
//Código....
}



La otra es que como estas apenas iniciando con la programación, trata de concentrarte en el codigo y dejes de lado el formato de salida ya que todos esos Gotoxy y clrscr solo estan estorbando el verdadero codigo.

La otra es que no uses la libreria Conio.h ya que no es estandar y la verdad te desvia del verdadero aprendizaje.


Saludos.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

Riverxz

Cita de: AlbertoBSD en 21 Agosto 2016, 20:58 PM
Hola antes que nada podrias decirnos en que linea esta el error?

Muchos no se molestan en leer codigos asi de largos por mas que quieran ayudar el tiempo invertido seria "excesivo"

Trata de colocar tu codigo en la etiqueta geshi:

int main() {
//Código....
}



La otra es que como estas apenas iniciando con la programación, trata de concentrarte en el codigo y dejes de lado el formato de salida ya que todos esos Gotoxy y clrscr solo estan estorbando el verdadero codigo.

La otra es que no uses la libreria Conio.h ya que no es estandar y la verdad te desvia del verdadero aprendizaje.


Saludos.

Sorry olvidé mencionar la linea del error

//definir librerias
# include<iostream>
# include<stdlib.h>
# include<stdlib.h>
# include<conio.h>
# include<stdio.h>
# include<time.h>
# include<windows.h>
# include<iomanip>

# define linea "------------------------------------------------------------"

void main ()
{   char user[10];
   int psw,pc1,pc2,pc3;
  system("color 1B");system("title el mejor programa del mundo®");
  gotoxy(20,3);cout<<"MODELO DE VALIDACION";
  gotoxy(10,8);cout<<linea;
  gotoxy(10,15);cout<<linea;

   // getche();//ver mis resultados temporalmente

//lectura de datos

gotoxy(15,11);cout<<"usuario = "; gets(user);
gotoxy(25,11);cout<<"****";
gotoxy(15,13);cout<<"clave = ";cin>>psw;
gotoxy(23,13);cout<<"***";
getche();
if((strcmp(strupr(user),"UNI")==0)&&(psw==100))
   {clrscr();system("color 3A");
      gotoxy(10,4);cout<<"bienvenido.....";
      getche();
            gotoxy(10,4);cout<<" calcular promedio...";
            gotoxy(5,5);cout<<linea;

            gotoxy(15,6);cout<<"Pc1="; cin>>pc1;
            if(pc1>=0 && pc1<=20)
             {
              gotoxy(15,10);cout<<"Correcto!";
              gotoxy(10,12);cout<<"PC2= ";cin>>pc2;
                if(pc2>=0 && pc2<=20)
                 {
                  gotoxy(15,13);cout<<"Correcto!";
                  gotoxy(15,15);cout<<"PC3= ";cin>>pc3;
                    if(pc3>=0 && pc3<=20)
                     {
                      gotoxy(15,13);cout<<"Correcto!";

                      //busqueda del nùmero menor
                      int menor=20;

                      if(menor>pc1)
                      {menor=pc1;
                      }
                      if(menor>pc2)
                      {menor=pc2;
                      };
                      if(menor>pc3)
                      {menor=pc3;
                      }
                      gotoxy(15,17);cout<<"MENOR NOTA = "<<menor;
                      float pp;
                      pp=((pc1+pc2+pc3)-menor)/2.0;
                      gotoxy(15,19);cout<<"Promedio... = "<<pp;
                      gotoxy(15,20);
                      cout<<setw(10)<<setprecision(3)<<pp;
                     }
                    else
                     {
                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
                     }
                else//aqui menciona el error
                {
                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                }
             }
            else
             {
               gotoxy(39,12);cout<<"Ha ingresado mal los datos";
             }
   }
else
{
   clrscr();system("color 4A");
    gotoxy(30,12);cout<<"Sr. sus datos estan errados";
}
getche ();//ver mis resultados temporalmente;
gotoxy(30,22);system("pause");//resultados en pantalla y mensaje "presina cualquier tecla para continuar";


}
}

gracias de antemano

AlbertoBSD

TE FALTO LA ETIQUETA GESHI....

Gracias por leer, te falto cerrar una llave:

Tu codigo actual esta asi:

                    else
                     {
                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
                     }
                else//aqui menciona el error
                {
                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                }


Y deberia de estar asi:

                    else
                     {
                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
                     }
               }// Te falto este fin de if.....
                else//aqui menciona el error
                {
                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                }


Repito si te concentras mas en la funcionalidad y menos en el formato vas a aprender mas

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

Riverxz

Cita de: AlbertoBSD en 21 Agosto 2016, 21:56 PM
TE FALTO LA ETIQUETA GESHI....

Gracias por leer, te falto cerrar una llave:

Tu codigo actual esta asi:

                    else
                     {
                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
                     }
                else//aqui menciona el error
                {
                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                }


Y deberia de estar asi:

                    else
                     {
                      gotoxy(30,14);cout<<"Ha ingresado mal los datos";
                     }
               }// Te falto este fin de if.....
                else//aqui menciona el error
                {
                 gotoxy(30,12);cout<<"Ha ingresado mal los datos";
                }


Repito si te concentras mas en la funcionalidad y menos en el formato vas a aprender mas

Saludos

Muchas gracias, para la próxima lo tomaré en cuenta  :D :D :D