Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: XV8 en 18 Diciembre 2010, 14:52 pm



Título: Problema con programa
Publicado por: XV8 en 18 Diciembre 2010, 14:52 pm
Llevo ya bastante tiempo dándole vueltas a este programa que siempre me da error al compilar, si ven el fallo avisenme, yo seguire buscandolo. Gracias.

//Programa de practica que sirve para crear una pequeña base de datos sobre videojuegos.

#include <iostream>
#include <stdio.h>

using namespace std;

const int MAXNAME = 25;
const int MAXARRAY = 10;

   struct juegos
   {
   char nombre [MAXNAME];
   int año;
   int genero;
   float nota;
   } juego [MAXARRAY];
   
int main (void)
{
int i = 0;
   while (i<MAXARRAY)
   {
   cout << "Introduzca el nombre del videojuego: "[ << i+1 << ]" : ";
   cin>> juego.nombre;
   
   cout << "Introduzca año de venta del juego "[ << i+1 << ]" : ";
   cin>> juego.año;
   
   cout << "Escriba el genero al que pertenece el juego "[ << i+1 << ]" : ";
   cin>> juego.genero;
   
   cout << "Nota que le asignas al juego "[ << i+1 << ]" : ";
   cin>> juego.nota;
   fflush(stdin);
   
   i++;
   }
   
   i=0;
   while (i<MAXARRAY)
   {
   cout << "Nombre del videojuego es "[ << i+1 << ]" : " << juego.nombre;
   cout << "Año de venta del videjuego "[ << i+1 << ]" :" << juego.año;
   cout << "El genero del videojuego"[ << i+1 << ]" es: " << juego.genero;
   cout << "La nota del videojuego "[ << i+1 << ]" es: " << nota.nota;
   cout<< ":::::::::::::::::::::::::::::::::::::::::::::::::::" << endl;
   i++
   }
return 0;
}
   


Título: Re: Problema con programa
Publicado por: xassiz~ en 18 Diciembre 2010, 15:19 pm
Utiliza el GeShi.
Código
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4. using namespace std;
  5.  
  6. const int MAXNAME = 25;
  7. const int MAXARRAY = 10;
  8.  
  9.   struct juegos
  10.   {
  11.   char nombre [MAXNAME];
  12.   int año;
  13.   int genero;
  14.   float nota;
  15.   } juego [MAXARRAY];
  16.  
  17. int main (void)
  18. {
  19. int i = 0;
  20.   while (i<MAXARRAY)
  21.   {
  22.   cout << "Introduzca el nombre del videojuego: "[ << i+1 << ]" : ";
  23.   cin>> juego.nombre;
  24.  
  25.   cout << "Introduzca año de venta del juego "[ << i+1 << ]" : ";
  26.   cin>> juego.año;
  27.  
  28.   cout << "Escriba el genero al que pertenece el juego "[ << i+1 << ]" : ";
  29.   cin>> juego.genero;
  30.  
  31.   cout << "Nota que le asignas al juego "[ << i+1 << ]" : ";
  32.   cin>> juego.nota;
  33.   fflush(stdin);
  34.  
  35.   i++;
  36.   }
  37.  
  38.   i=0;
  39.   while (i<MAXARRAY)
  40.   {
  41.   cout << "Nombre del videojuego es "[ << i+1 << ]" : " << juego.nombre;
  42.   cout << "Año de venta del videjuego "[ << i+1 << ]" :" << juego.año;
  43.   cout << "El genero del videojuego"[ << i+1 << ]" es: " << juego.genero;
  44.   cout << "La nota del videojuego "[ << i+1 << ]" es: " << nota.nota;
  45.   cout<< ":::::::::::::::::::::::::::::::::::::::::::::::::::" << endl;
  46.   i++
  47.   }
  48. return 0;
  49. }

Debes leer los errores que te dice el compilador.


Título: Re: Problema con programa
Publicado por: pucheto en 18 Diciembre 2010, 15:20 pm
Y cual es el error que et da?
Mirandolo rapido, te falta el [ i ] cuando indexas el arreglo 'juego'.
Código
  1. cout << "Introduzca el nombre del videojuego: "[ << i+1 << ]" : ";
  2.   cin>> juego[i].nombre;
  3.  
  4.   cout << "Introduzca año de venta del juego "[ << i+1 << ]" : ";
  5.   cin>> juego[i].año;
  6.  
  7.   cout << "Escriba el genero al que pertenece el juego "[ << i+1 << ]" : ";
  8.   cin>> juego[i].genero;
  9.  
  10.   cout << "Nota que le asignas al juego "[ << i+1 << ]" : ";
  11.   cin>> juego[i].nota;
  12.  

y los [  ] estan fuera de lugar...
Código
  1. cout << "Nombre del videojuego es [" << i+1 << "] : " << juego[i].nombre;


Título: Re: Problema con programa
Publicado por: XV8 en 18 Diciembre 2010, 17:59 pm
Borre todos los [] y ahora solo me da un error:
expected ";" before "}" token
que es la llave } que cierra el ultimo bucle while y que esta justo antes de return 0;


Título: Re: Problema con programa
Publicado por: XV8 en 18 Diciembre 2010, 18:24 pm
Nada ya compila, pero al introducir el genero se fastidia, cuando lo arregle lo subo y asi por lo menos sirve de ejemplo para otros.


Título: Re: Problema con programa
Publicado por: XV8 en 18 Diciembre 2010, 18:54 pm
Es es el programa ya correcto y le añadí un par de EXIT_FAILURE a ver si se me ocurre algo mas para meterle. Gracias por la ayuda.

Código:
#include <iostream>
#include <stdio.h>
#include <stdlib.h> //Libreria para poder usar el EXIT_FAILURE.

using namespace std;

const int MAXNAME = 25;
const int MAXARRAY = 10;

struct juegos
{
char nombre [MAXNAME];
int año;
int genero;
float nota;
} juego [MAXARRAY];

int main (void)
{
int i = 0;
while (i<MAXARRAY)
{
cout << "Introduzca el nombre del videojuego: " << i+1 << " : ";
cin>> juego[i].nombre;

cout << "Introduzca año de venta del juego " << i+1 << " : ";
cin>> juego[i].año;

cout << "Escriba el género al que pertenece el juego " << i+1 << " : Acción(1),Estrategia(2), Rol(3), Arcade(4)" << endl;
cin>> juego[i].genero;
if (juego[i].genero < 5){}
else {cout << "Debe elegir un genero disponible, intentelo de nuevo" << endl;
exit(EXIT_FAILURE);}

cout << "Nota que le asignas al juego " << i+1 << " : ";
cin>> juego[i].nota;
if (juego[i].nota < 11) {}
else { cout << "La nota solo puede ser del 1 al 10" << endl;
exit(EXIT_FAILURE);}
cout << ":::::::::::::::::::::::::::::::::::::::::::::::::" << endl;
fflush(stdin);

i++;
}

i=0;
while (i<MAXARRAY)
{
cout << "Nombre del videojuego es " << i+1 << " : " << juego[i].nombre;
cout << "Año de venta del videjuego " << i+1 << " :" << juego[i].año;
cout << "El genero del videojuego" << i+1 << " es: " << juego[i].genero;
cout << "La nota del videojuego " << i+1 << " es: " << juego[i].nota;
cout<< ":::::::::::::::::::::::::::::::::::::::::::::::::::" << endl;
i++;
}
return 0;
}