Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Problema con Codigo C++

Estas en el tema de Problema con Codigo C++ en el foro de C/C++ en Foros del Web. Hola, el otro dia me pasaron un codigo para hacer un sorteo por grupos, e modificado algunas cosas, y me daban error pero las e ...
  #1 (permalink)  
Antiguo 05/05/2014, 05:29
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 10 años
Puntos: 0
Pregunta Problema con Codigo C++

Hola, el otro dia me pasaron un codigo para hacer un sorteo por grupos, e modificado algunas cosas, y me daban error pero las e ido solucionando, el problema que tengo ahora es con printf que me da un error y no caigo porque. este es el error que me indica.

http://www.casimages.es/i/140505013410333844.png.html
  #2 (permalink)  
Antiguo 05/05/2014, 06:29
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Problema con Codigo C++

si no pones el source completo no sabemos lo que te pasa.
  #3 (permalink)  
Antiguo 05/05/2014, 08:39
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con Codigo C++

lo siento, este es el codigo entero.

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

using namespace std;

int main(int argc, char *argv[])
{
//NOTA ESTE ES UN SISTEMA QUE GENERE SORTEO DE 8 EQUIPOS SI QUIERE INCLUIR
//MAS EQUIPOS NECESITA CAMBIAR LAS VARIABLES DE LOS VECTORES Y LOS CICLOS
//WHILE, FOR

//Signfica que se crea un arreglo con 8 equipos
//Y cada equipo tendra un total de 30 letras
//para el nombre, ejemplo: Alemania
char *paises[30] ={"Teresa", "MariaM", "David", "IreneS", "Olivia", "SergioF", "Alberto", "ElenaA", "SaraA", "JavierR",
"Daniel", "MariC", "CarmenG", "AlvaroA"};

//Variable que llevara el control de los paises que ya salieron en
//sorteo de los grupos
//Se uso la configuracion los primeros cuatro primer grupo
//los ultimos cuatro son el segundo grupo
int participantes[14];
//Variable que contara los paises que han participado o que
//ya salieron en el sorteo
int contadorpaises = 0;
int i =0;

//Se declara las variables para generar el numero aleatorio
int numeroaleatorio = 0;
int numeroobtenido =0;
bool numerocorrecto = true;

//Se ejecuta hasta que el contador sea 8
//por lo cual si el contador es menor de 8 significa
//que no sean creado todo los grupos
while(contadorpaises <14)
{
//Se especifica el numero correcto
numerocorrecto = true;
//Se crea el numero aleatorio
srand (time (NULL));
//Se crea los numeros aleatorios
//del 1 al 8
numeroaleatorio =rand() % 14;

//Se recorren los paises que ya estan agregados en
//el torneo
for(i=0; i<contadorpaises;i++)
{
//Si el numero aleatorio es un pais que ya agregado en
//no se puede volver a usar por lo cual se valida
if(numeroaleatorio == participantes[i])
{
//El numero no es correcto y se termina el ciclo FOR
numerocorrecto =false;
break;
}
}

//Si el numero que se genero es correcto
if(numerocorrecto ==true)
{
//Se agrega el pais a un grupo
participantes[contadorpaises] = numeroaleatorio;
contadorpaises = contadorpaises + 1;
}
}

//Variable funciona para recorrer los grupos y mostrarlos al usuario
contadorpaises = 1;

//Se imprimen los grupos en pantalla para que el usuario pueda verlos
for(i=0; i<22;i++)
{
if(i==0)
{
//Se imprime el primer grupo
printf("PRIMER GRUPO \n");
}
if(i==4)
{

//Se imprime el primer grupo
printf("SEGUNDO GRUPO \n");
}
//Se muestra el participante
printf("Equipo %d -- %s\n", contadorpaises, paises[participantes[i]]);
contadorpaises = contadorpaises + 1;
}

system("PAUSE");
return EXIT_SUCCESS;
}
  #4 (permalink)  
Antiguo 05/05/2014, 09:56
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Problema con Codigo C++

Supongo que si el programa arranca seras capaz de seguir¿No? Tu problema es por que printf no anda?
Pues si estas compilando en c++ debes incluir cstdio #include<cstdio> o en vez de usar printf usas cout que para eso esta #include<iostream>.
Como veo que hay librerías de c++ estas obligado a guardarlo como .cpp y usar el compilador de cpp.
Las librerías son otro punto, en c usas stdio.h para usar printf pero en cpp le quitas la h y pon una c delante, quedando como dije antes cstdio.
Librerías como stdlib.h stdio.h quedan como cstdlib y cstdio, no es obligado a ponerlas así pero es mejor por que esas son las de cpp.
Si sigues con problemas aquí estamos ;)

He visto mas errores pero necesito algo de tiempo para mirarlos.
Lo dejo aqui el código organizado para que si alguien tiene mas luces que yo te vaya ayudando en algo.
Código C++:
Ver original
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <time.h>
  5. #include <cstdio> // <-Esto le faltaba para el printf furular XD
  6. using namespace std;
  7.  
  8. int main ( int argc, char * argv[] ) {
  9.     //NOTA ESTE ES UN SISTEMA QUE GENERE SORTEO DE 8 EQUIPOS SI QUIERE INCLUIR
  10.     //MAS EQUIPOS NECESITA CAMBIAR LAS VARIABLES DE LOS VECTORES Y LOS CICLOS
  11.     //WHILE, FOR
  12.    
  13.     //Signfica que se crea un arreglo con 8 equipos
  14.     //Y cada equipo tendra un total de 30 letras
  15.     //para el nombre, ejemplo: Alemania
  16.     char * paises[30] = {"Teresa", "MariaM", "David", "IreneS", "Olivia", "SergioF", "Alberto", "ElenaA", "SaraA", "JavierR",
  17.                          "Daniel", "MariC", "CarmenG", "AlvaroA"
  18.                         };
  19.                        
  20.     //Variable que llevara el control de los paises que ya salieron en
  21.     //sorteo de los grupos
  22.     //Se uso la configuracion los primeros cuatro primer grupo
  23.     //los ultimos cuatro son el segundo grupo
  24.     int participantes[14];
  25.     //Variable que contara los paises que han participado o que
  26.     //ya salieron en el sorteo
  27.     int contadorpaises = 0;
  28.     int i = 0;
  29.    
  30.     //Se declara las variables para generar el numero aleatorio
  31.     int numeroaleatorio = 0;
  32.     int numeroobtenido = 0;
  33.     bool numerocorrecto = true;
  34.    
  35.     //Se ejecuta hasta que el contador sea 8
  36.     //por lo cual si el contador es menor de 8 significa
  37.     //que no sean creado todo los grupos
  38.     while ( contadorpaises < 14 ) {
  39.         //Se especifica el numero correcto
  40.         numerocorrecto = true;
  41.         //Se crea el numero aleatorio
  42.         srand ( time ( NULL ) );
  43.         //Se crea los numeros aleatorios
  44.         //del 1 al 8
  45.         numeroaleatorio = rand() % 14;
  46.        
  47.         //Se recorren los paises que ya estan agregados en
  48.         //el torneo
  49.         for ( i = 0; i < contadorpaises; i++ ) {
  50.             //Si el numero aleatorio es un pais que ya agregado en
  51.             //no se puede volver a usar por lo cual se valida
  52.             if ( numeroaleatorio == participantes[i] ) {
  53.                 //El numero no es correcto y se termina el ciclo FOR
  54.                 numerocorrecto = false;
  55.                 break;
  56.             }
  57.         }
  58.        
  59.         //Si el numero que se genero es correcto
  60.         if ( numerocorrecto == true ) {
  61.             //Se agrega el pais a un grupo
  62.             participantes[contadorpaises] = numeroaleatorio;
  63.             contadorpaises = contadorpaises + 1;
  64.         }
  65.     }
  66.    
  67.     //Variable funciona para recorrer los grupos y mostrarlos al usuario
  68.     contadorpaises = 1;
  69.    
  70.     //Se imprimen los grupos en pantalla para que el usuario pueda verlos
  71.     for ( i = 0; i < 22; i++ ) {
  72.         if ( i == 0 ) {
  73.             //Se imprime el primer grupo
  74.             printf ( "PRIMER GRUPO \n" );
  75.         }
  76.        
  77.         if ( i == 4 ) {
  78.        
  79.             //Se imprime el primer grupo
  80.             printf ( "SEGUNDO GRUPO \n" );
  81.         }
  82.        
  83.         //Se muestra el participante
  84.         printf ( "Equipo %d -- %s\n", contadorpaises, paises[participantes[i]] );
  85.         contadorpaises = contadorpaises + 1;
  86.     }
  87.    
  88.     system ( "PAUSE" );
  89.     return EXIT_SUCCESS;
  90. }
  #5 (permalink)  
Antiguo 05/05/2014, 14:49
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con Codigo C++

joe muchas gracias, esque tengo bastante abandonado esto y ya hay cosas que no recuerdo, se que tengo varios errores mas, como estos:

C:\Users\afernandez\Downloads\main.cpp In function 'int main(int, char**)':

19 41 C:\Users\afernandez\Downloads\main.cpp [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
  #6 (permalink)  
Antiguo 05/05/2014, 15:19
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Problema con Codigo C++

Es un aviso mas bien que un error, desaconsejando que uses puntero de esta forma char *p = "cadena"; ya que la cadena no la vas a poder modificar después.
Lo único que puedes hacer es apuntar a otra cadena.
  #7 (permalink)  
Antiguo 05/05/2014, 15:55
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con Codigo C++

a vale entonces solo le falta el error del main


C:\Users\afernandez\Downloads\main.cpp In function 'int main(int, char**)':
  #8 (permalink)  
Antiguo 05/05/2014, 18:38
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Problema con Codigo C++

el int, y el char los puedes borrar.
sirven para cuando vas a pasar argumentos desde fuera del programa.
Si dejas a asi int main() no le va pasar nada al programa.

Pero lo que te esta diciendo es que en la función main esta pasando el error de antes del puntero.
Pero si no te deja compilar borra lo que tienes entre() de main como dije.
¿Por curiosidad que compilador/IDE usas?
  #9 (permalink)  
Antiguo 06/05/2014, 03:55
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con Codigo C++

Dev-C++ 5.3.0.4

lo he dejado como dices int main () y sigue sin dejar, marca el error en #include <cstdlib>

Código PHP:
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <time.h> 
#include <cstdio>

using namespace std;

int main()
{
    
//NOTA ESTE ES UN SISTEMA QUE GENERE SORTEO DE 8 EQUIPOS SI QUIERE INCLUIR
    //MAS EQUIPOS NECESITA CAMBIAR LAS VARIABLES DE LOS VECTORES Y LOS CICLOS
    //WHILE, FOR
    
    //Signfica que se crea un arreglo con 8 equipos
    //Y cada equipo tendra un total de 30 letras
    //para el nombre, ejemplo: Alemania
    
char *paises[30] ={"Teresa""MariaM""David""IreneS""Olivia",  "SergioF""Alberto",  "ElenaA""SaraA""JavierR"
    
"Daniel""MariC""CarmenG""AlvaroA"};
    
    
//Variable que llevara el control de los paises que ya salieron en
    //sorteo de los grupos
    //Se uso la configuracion los primeros cuatro primer grupo
    //los ultimos cuatro son el segundo grupo
    
int participantes[14];
    
//Variable que contara los paises que han participado o que
    //ya salieron en el sorteo
    
int contadorpaises 0;
    
int i =0;
    
    
//Se declara las variables para generar el numero aleatorio
    
int numeroaleatorio 0;
    
int numeroobtenido =0;
    
bool numerocorrecto true;
    
    
//Se ejecuta hasta que el contador sea 8
    //por lo cual si el contador es menor de 8 significa
    //que no sean creado todo los grupos
    
while(contadorpaises <14)
    {
            
//Se especifica el numero correcto
            
numerocorrecto true;
            
//Se crea el numero aleatorio
            
srand (time (NULL));
            
//Se crea los numeros aleatorios
            //del 1 al 8
            
numeroaleatorio =rand() % 14;

            
//Se recorren los paises que ya estan agregados en
            //el torneo
            
for(i=0i<contadorpaises;i++)
            {
                     
//Si el numero aleatorio es un pais que ya agregado en
                     //no se puede volver a usar por lo cual se valida
                    
if(numeroaleatorio == participantes[i])
                    {
                           
//El numero no es correcto y se termina el ciclo FOR
                           
numerocorrecto =false;
                           break;
                    }
            }
            
            
//Si el numero que se genero es correcto
            
if(numerocorrecto ==true)
            {
                    
//Se agrega el pais a un grupo
                    
participantes[contadorpaises] = numeroaleatorio;
                    
contadorpaises contadorpaises 1;
            }                  
    }
    
    
//Variable funciona para recorrer los grupos y mostrarlos al usuario
    
contadorpaises 1;
    
    
//Se imprimen los grupos en pantalla para que el usuario pueda verlos
    
for(i=0i<22;i++)
    {
             if(
i==0)
             {
                    
//Se imprime el primer grupo
                    
printf("PRIMER GRUPO \n");
             }
             if(
i==4)
             {
                    
                    
//Se imprime el primer grupo
                    
printf("SEGUNDO GRUPO \n");
             }
             
//Se muestra el participante
             
printf("Equipo %d -- %s\n"contadorpaisespaises[participantes[i]]);
             
contadorpaises contadorpaises 1
    }

    
system("PAUSE");
    return 
EXIT_SUCCESS;

  #10 (permalink)  
Antiguo 06/05/2014, 04:03
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con Codigo C++

vale ya compila y ejecuta, solo faltaba una cosa que no me di cuenta yo, torpeza mia, muchas gracias.
  #11 (permalink)  
Antiguo 06/05/2014, 05:15
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Problema con Codigo C++

time la puedes cambiar también de time.h por ctime ;)
para mas información aquí las tienes :D
http://www.cplusplus.com/reference/

Última edición por vangodp; 06/05/2014 a las 07:46

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:14.