elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [?] Problemas con código en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [?] Problemas con código en C++  (Leído 5,957 veces)
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
[?] Problemas con código en C++
« en: 24 Febrero 2013, 19:23 pm »

Hola, quería preguntar que errores tienen estos códigos en C++, están escritos por mi, y aunque el compilador no me saca ningun fallo, me falla algo porque el programa rompe....  :( :(

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. struct TJugadores
  6. {
  7.  
  8.       char nombre[75];
  9.       int puntuacion;      
  10.  
  11. };
  12.  
  13. int main(void)
  14. {
  15.  
  16.    struct TJugadores name[6];
  17.    int n;
  18.    int punt_max;
  19.    int punt_min;
  20.    char mej_jug[75];
  21.    char men_jug[75];
  22.  
  23.  
  24.    for(n=0; n<=5; n++)
  25.  
  26.    {
  27.  
  28.    printf("\nEscribe el nombre del jugador %d: ", n+1);  //Nombre del jugador
  29.    gets(name[n].nombre);
  30.    fflush(stdin);
  31.    printf("\nEscribe la puntuacion: ");                  //Puntuación del jugador
  32.    scanf("%d",&name[n].puntuacion);
  33.    fflush(stdin);
  34.  
  35.    }
  36.  
  37.    punt_max = name[0].puntuacion;
  38.    strcpy (mej_jug, name[0].nombre);
  39.    punt_min = name[0].puntuacion;
  40.    strcpy (men_jug, name[0].nombre);  
  41.  
  42.    for(n=0; n<=5; n++)
  43.  
  44.    {
  45.  
  46.    if (name[n].puntuacion > punt_max)
  47.  
  48.    {
  49.  
  50.    punt_max = name[n].puntuacion;
  51.    strcpy (mej_jug, name[n].nombre);
  52.  
  53.    }
  54.  
  55.    if (name[n].puntuacion < punt_min)
  56.  
  57.    {
  58.  
  59.    punt_min = name[n].puntuacion;
  60.    strcpy (men_jug, name[n].nombre);
  61.  
  62.    }
  63.  
  64.    }
  65.  
  66.    printf("\n\nEl mejor resultado lo ha obtenido %s con una puntuacion de %d puntos.", punt_max, mej_jug);
  67.    printf("\n\nEl peor resultado lo ha obtenido %s con una puntuacion de %d puntos.", punt_min, men_jug);
  68.  
  69.    fflush(stdin);
  70.    printf("\nPresione Intro para finalizar...\n\n");
  71.    getchar();
  72. }

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void Medida(int Val, int Dist);
  5. void Algoritmo(int Longitud, int Diametro);
  6.  
  7. int main(void)
  8.  
  9. {
  10.  
  11.    int ValLongA;
  12.    int DistDiamA;
  13.  
  14.    int ValLongB;
  15.    int DistDiamB;
  16.  
  17.    Medida(ValLongA, DistDiamA);
  18.  
  19.    ValLongA = ValLongB;
  20.    DistDiamA = DistDiamB;
  21.  
  22.    Algoritmo(ValLongB, DistDiamB);
  23.  
  24.  
  25. }
  26.  
  27. void Medida(int Val, int Dist)
  28. {
  29.  
  30.     printf("\n\nIntroduzca la longitud de la circumerencia: ");
  31.     scanf("%d", &Val);
  32.     printf("\n\nIntroduzca el diametro de la circumerencia: ");
  33.     scanf("%d", &Dist);    
  34.  
  35.  
  36. }
  37. void Algoritmo(int Longitud, int Diametro)
  38. {
  39.  
  40.     float PI;
  41.  
  42.     PI = Longitud / Diametro;
  43.  
  44.     printf("\nEl valor de PI para esos valores es...\n\n");
  45.     printf("%f", PI);
  46.  
  47.     fflush(stdin);
  48.     printf("\nPresione Intro para finalizar...\n\n");
  49.     getchar();    
  50.  
  51.  
  52. }


Espero que puedan decirme que falla  :-\ :-\

Gracias y Saludos.


En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [?] Problemas con código en C++
« Respuesta #1 en: 24 Febrero 2013, 19:35 pm »

En el ultimo se donde la he cagado, pero no se porque rompe, el valor de PI no me dará 3.14... porque estoy cogiendo dos valores aleatorios  :laugh: :laugh:, pero en teoría me tendría que salir el resultado de la división  :¬¬ :¬¬


En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: [?] Problemas con código en C++
« Respuesta #2 en: 24 Febrero 2013, 19:43 pm »

Código
  1. fflush(stdin);
  2.  

El comportamiento para esta llamada no está definido ya que fflush es ÚNICAMENTE para flujos de salida.

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html
En línea

85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: [?] Problemas con código en C++
« Respuesta #3 en: 24 Febrero 2013, 19:52 pm »


Tus códigos tienen ciertas faltas un tanto inocentes, pero se nota que estás aprendiendo, por eso te las arreglé para que funcionen tus programas.
Igualmente me puse a depurar algo que en realidad eran errores fáciles como ser un %d por un %s , pero eso dije faltas un tanto inocentes XD

Código:
#include <stdio.h>
#include <stdlib.h>
 
void Medida(int& Val, int& Dist);
void Algoritmo(int Longitud, int Diametro);
 
int main(void)
{
    int ValLongA;
    int DistDiamA;
    int ValLongB;
    int DistDiamB;
    Medida(ValLongA, DistDiamA);
    ValLongB = ValLongA;
    DistDiamB = DistDiamA;
    Algoritmo(ValLongB, DistDiamB);
return 0;
}
 
void Medida(int& Val, int& Dist)
{
     printf("\n\nIntroduzca la longitud de la circumerencia: ");
     scanf("%d", &Val);
     printf("\n\nIntroduzca el diametro de la circumerencia: ");
     scanf("%d", &Dist);
}

void Algoritmo(int Longitud, int Diametro)
{
     float _PI;
     _PI = (float)((float)Longitud/(float)Diametro);
     printf("\nEl valor de PI para esos valores es...\n\n");
     printf("PI: %f\n", _PI);
     fflush(stdin);
     printf("\nPresione Intro para finalizar...\n\n");
     getchar();
}


Código:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
struct TJugadores
{
char nombre[75];
    int puntuacion;
};
 
int main(void)
{
    struct TJugadores name[6];
    int n;
    int punt_max;
    int punt_min;
    char mej_jug[75];
    char men_jug[75];
const int cant=2;
 
 
    for(n=0; n<cant; n++)
    {
printf("\nEscribe el nombre del jugador %d: ", n+1);  //Nombre del jugador
gets(name[n].nombre);
fflush(stdin);
printf("\nEscribe la puntuacion: "); //Puntuación del jugador
scanf("%d",&name[n].puntuacion);
fflush(stdin);
    }

// MessageBox(0,0,0,0);
 
    punt_max = name[0].puntuacion;
    strcpy (mej_jug, name[0].nombre);
    punt_min = name[0].puntuacion;
    strcpy (men_jug, name[0].nombre);   
 
// MessageBox(0,0,0,0);
 
    for(n=0; n<cant; n++)
    {
if (name[n].puntuacion > punt_max)
{
punt_max = name[n].puntuacion;
strcpy (mej_jug, name[n].nombre);
}
 
if (name[n].puntuacion < punt_min)
{
punt_min = name[n].puntuacion;
strcpy (men_jug, name[n].nombre);
}
    }
 
// MessageBox(0,0,0,0);
 
    printf("\n\nEl mejor resultado lo ha obtenido %d con una puntuacion de %s puntos.", punt_max, mej_jug);
    printf("\n\nEl peor resultado lo ha obtenido %d con una puntuacion de %s puntos.", punt_min, men_jug);
    fflush(stdin);
    printf("\nPresione Intro para finalizar...\n\n");
    getchar();
return 0;
}

En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [?] Problemas con código en C++
« Respuesta #4 en: 24 Febrero 2013, 20:04 pm »

Tus códigos tienen ciertas faltas un tanto inocentes, pero se nota que estás aprendiendo, por eso te las arreglé para que funcionen tus programas.

Si, hace poco mas de un mes que estoy con el C++, muchas gracias por las soluciones, ahora lo cambio e intentaré entender las modificaciones.

En el código de los jugadores, lo único que falle fue en la tontería que me dijiste...


Código
  1.    printf("\n\nEl mejor resultado lo ha obtenido %s con una puntuacion de %d puntos.", punt_max, mej_jug);
  2.    printf("\n\nEl peor resultado lo ha obtenido %s con una puntuacion de %d puntos.", punt_min, men_jug);

Y tendría que ser asi...

Código
  1.    printf("\n\nEl mejor resultado lo ha obtenido %s con una puntuacion de %d puntos.", mej_jug, punt_max);
  2.    printf("\n\nEl menor resultado lo ha obtenido %s con una puntuacion de %d puntos.", men_jug, punt_min);

Pero el de PI no entiendo la modificación.... Pero aun así gracias  ;-) ;-)
« Última modificación: 24 Febrero 2013, 20:15 pm por MeCraniDOS » En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: [?] Problemas con código en C++
« Respuesta #5 en: 24 Febrero 2013, 20:10 pm »

Una pequeña aclaracion: eso es C, no C++.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
85

Desconectado Desconectado

Mensajes: 206



Ver Perfil WWW
Re: [?] Problemas con código en C++
« Respuesta #6 en: 24 Febrero 2013, 21:46 pm »

Si, hace poco mas de un mes que estoy con el C++, muchas gracias por las soluciones, ahora lo cambio e intentaré entender las modificaciones.

En el código de los jugadores, lo único que falle fue en la tontería que me dijiste...


Código
  1.    printf("\n\nEl mejor resultado lo ha obtenido %s con una puntuacion de %d puntos.", punt_max, mej_jug);
  2.    printf("\n\nEl peor resultado lo ha obtenido %s con una puntuacion de %d puntos.", punt_min, men_jug);

Y tendría que ser asi...

Código
  1.    printf("\n\nEl mejor resultado lo ha obtenido %s con una puntuacion de %d puntos.", mej_jug, punt_max);
  2.    printf("\n\nEl menor resultado lo ha obtenido %s con una puntuacion de %d puntos.", men_jug, punt_min);

Pero el de PI no entiendo la modificación.... Pero aun así gracias  ;-) ;-)

Na en realidad, yo no te digo que son tonterías eso le pasa a cualquiera. Te conviene practicar la depuración de programas. No es necesario el windbg para hacerlo, se puede seguir la ejecución de un programa usando un mísero MessageBox o un printf+pause, cualquier cosa que te muestre por pantalla la situación del programa.

Con respecto al primer programa, estas dos asignaciones estaban invertidas y fueron arregladas..

Citar
int main(void)
{
    int ValLongA;
    int DistDiamA;
    int ValLongB;
    int DistDiamB;
    Medida(ValLongA, DistDiamA);
    ValLongB = ValLongA;
    DistDiamB = DistDiamA;

    Algoritmo(ValLongB, DistDiamB);
   return 0;
}

Lo que también se hizo fue hacer que,
Código
  1. void Medida(int& Val, int& Dist)

reciba los parámetros por referencia, para poder modificarlos.

después esto,
Código
  1. _PI = (float)((float)Longitud/(float)Diametro);

olvidate , es sólo figurativo

hasta luego

En línea

Me cerraron el Windows Live Spaces, entonces me creé un WordPress XD
http://etkboyscout.wordpress.com/
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [?] Problemas con código en C++
« Respuesta #7 en: 10 Marzo 2013, 13:50 pm »


Vale Vale, muchas gracias, otra cosa, vi que pusiste esto:

Código
  1. // MessageBox(0,0,0,0);

Y que me dijiste esto:

Citar
Te conviene practicar la depuración de programas. No es necesario el windbg para hacerlo, se puede seguir la ejecución de un programa usando un mísero MessageBox

Pero cuando pongo lo del MessageBox(0,0,0,0); dice que no esta declarado, de que Liberia es ese comando??

Saludos
  ;-)
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: [?] Problemas con código en C++
« Respuesta #8 en: 10 Marzo 2013, 15:44 pm »


No te olvides de usar las etiquetas GeSHi con C++, aunque el código sea en C. Es más fácil de seguirlo con colores.


Saluditos!. ...
En línea

MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [?] Problemas con código en C++
« Respuesta #9 en: 10 Marzo 2013, 16:13 pm »


No te olvides de usar las etiquetas GeSHi con C++, aunque el código sea en C. Es más fácil de seguirlo con colores.


Están puestas en lo que yo he posteado... :)
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemas con este codigo ayuda
Programación Visual Basic
ELGRANSOLRAC 2 1,659 Último mensaje 17 Febrero 2006, 23:48 pm
por Ironhorse
Problemas con código ASM
ASM
Cristhian_Rider 0 3,551 Último mensaje 16 Noviembre 2011, 21:38 pm
por Cristhian_Rider
Problemas con código de parquímetro.
Programación C/C++
OmarHack 8 5,789 Último mensaje 5 Abril 2013, 21:54 pm
por OmarHack
[Resuelto] Problemas con un código de JS
Desarrollo Web
noaptebuna 6 3,273 Último mensaje 14 Septiembre 2015, 15:51 pm
por noaptebuna
Problemas con codigo de clases en c++
Programación C/C++
ianmorar03 3 2,305 Último mensaje 27 Marzo 2016, 22:41 pm
por crack81
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines