Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Nicoloreido en 18 Febrero 2015, 01:47 am



Título: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: Nicoloreido en 18 Febrero 2015, 01:47 am
Código:
 

#include <stdio.h>
#include <stdlib.h>

int main (){
   
    int menu,opcion,a,b,x,y,z=0;
   
   
     
   
printf ("Seleccione el cero (0) para el primer menu\n ");
printf ("Seleccione el seis (6) para el segundo menu\n\n ");
printf ("0-Primer Menu\n\n6-Segundo Menu\n\n");
 scanf ("%d",&menu);
 
   
   
     if (menu==0) {
                 
                 
printf ("\nHA SELECCIONADO EL PRIMER MENU\n\n ");
printf ("Seleccione el numero de la operacion que quiere hacer\n\n ");
printf ("Ejemplo: Si selecciona el uno (1) los dos valors que escriba se van a sumar\n\n ");                             
printf ("Menu de Opciones\n\n 1-Suma \n 2-Resta \n 3-Multiplicacion \n 4-Division\n ");
printf ("\nSeleccione Una Opcion\n\n "); scanf ("%d",&opcion);


}

if (opcion==1){
             

             printf ("\nHa Seleccionado Suma\n\n ");
             
printf ("Escribe el primer valor "); scanf ("%d",&x);     
printf ("Escribe el segundo valor "); scanf ("%d",&y);
z= x+y;
printf ("\n%d + %d = %d ",x,y,z);       
}


 else if (opcion==2){
             
              printf ("\nHa Seleccionado Resta\n\n ");
             
printf ("Escribe el primer valor "); scanf ("%d",&x);     
printf ("Escribe el segundo valor "); scanf ("%d",&y);
z= x-y;
printf ("\n%d - %d = %d ",x,y,z);       
}     

else  if (opcion==3){
       
        printf ("\nHa Seleccionado Multiplicacion\n\n ");
       
printf ("Escribe el primer valor "); scanf ("%d",&x);     
printf ("Escribe el segundo valor "); scanf ("%d",&y);
z= x*y;
printf ("\n%d * %d = %d ",x,y,z);       
}

else if (opcion==4){
     
      printf ("\nHa Seleccionado Division\n\n ");
     
printf ("Escribe el primer valor "); scanf ("%d",&x);     
printf ("Escribe el segundo valor "); scanf ("%d",&y);
z= x/y;
printf ("\n%d / %d = %d ",x,y,z);       
}

else if (menu==6){
       
     
printf ("HA SELECCIONADO EL SEGUNDO MENU\n\n ");
 
printf ("Escriba el primer valor "); scanf ("%d",&a);
printf ("Escriba el segundo valor "); scanf ("%d",&b);
}


 if (a>b)  {                           
         
printf ("\nEl Mayor es %d ",a);
printf ("\nEl Menor es %d ",b);       
}



 else  if (a<b) {
 
printf ("\n El Mayor es %d \n",b);
printf ("\n El Menor es %d \n",a);     
}


else {
     printf ("\nSon Iguales \n ");
     }
     

 
     system ("pause ");
     }


   



Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: engel lex en 18 Febrero 2015, 03:30 am
explica tu error con detalle, porque no entiendo...


Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: Nicoloreido en 18 Febrero 2015, 15:43 pm
Si corres el programa veras que si seleccionas el primer menu, sea cual sea la operación que hayas escogido, te da el resultado, pero debajo del resultado me sale: El mayor es 59, el menor es 2, no se porque, y no debería de salir


Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: engel lex en 18 Febrero 2015, 16:25 pm
ya... porque en prime menú cargas las variables "x", "y" y "z", pero nunca "a" y "b", y como no inicializas ninguna variable a demás de "z" la operacion muestra basura de la memoria....


Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: Nicoloreido en 18 Febrero 2015, 20:18 pm
Yo no se mucha programación, estoy aprendiendo y no entiendo lo que me dices, como resuelvo el problema, en español por favor ;D


Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: T. Collins en 18 Febrero 2015, 20:25 pm
Código
  1. if (a>b)  {                            
  2.  
  3. printf ("\nEl Mayor es %d ",a);
  4. printf ("\nEl Menor es %d ",b);      
  5. }
  6.  
  7.  
  8.  
  9. else  if (a<b) {
  10.  
  11. printf ("\n El Mayor es %d \n",b);
  12. printf ("\n El Menor es %d \n",a);      
  13. }
  14.  
  15.  
  16. else {
  17.     printf ("\nSon Iguales \n ");
  18.     }

Mete esa parte del código dentro de:

Código
  1. else if (menu==6){
  2.  
  3. }


Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: engel lex en 18 Febrero 2015, 20:38 pm
si no sabes de programación, como hiciste el código? :s no te dije nada raro, te dije que no estás usando bien las variables XD

te recomiendo sentarte y leer bien lo que haces y te dicen :P


Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: Nicoloreido en 18 Febrero 2015, 20:54 pm
Gracias, pero sigo con el mismo problema, solo que ahora pone números diferentes, y si que me he sentado, y revisado, y como dije estoy aprendiendo, aun así espero poder resolver el problema


Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: T. Collins en 18 Febrero 2015, 21:09 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (){
  5.  
  6.    int menu,opcion,a,b,x,y,z=0;
  7.  
  8.  
  9.  
  10.  
  11. printf ("Seleccione el cero (0) para el primer menu\n ");
  12. printf ("Seleccione el seis (6) para el segundo menu\n\n ");
  13. printf ("0-Primer Menu\n\n6-Segundo Menu\n\n");
  14. scanf ("%d",&menu);
  15.  
  16.  
  17.  
  18.     if (menu==0) {
  19.  
  20.  
  21. printf ("\nHA SELECCIONADO EL PRIMER MENU\n\n ");
  22. printf ("Seleccione el numero de la operacion que quiere hacer\n\n ");
  23. printf ("Ejemplo: Si selecciona el uno (1) los dos valors que escriba se van a sumar\n\n ");                            
  24. printf ("Menu de Opciones\n\n 1-Suma \n 2-Resta \n 3-Multiplicacion \n 4-Division\n ");
  25. printf ("\nSeleccione Una Opcion\n\n "); scanf ("%d",&opcion);
  26.  
  27.  
  28. }
  29.  
  30. if (opcion==1){
  31.  
  32.  
  33.             printf ("\nHa Seleccionado Suma\n\n ");
  34.  
  35. printf ("Escribe el primer valor "); scanf ("%d",&x);    
  36. printf ("Escribe el segundo valor "); scanf ("%d",&y);
  37. z= x+y;
  38. printf ("\n%d + %d = %d ",x,y,z);      
  39. }
  40.  
  41.  
  42. else if (opcion==2){
  43.  
  44.              printf ("\nHa Seleccionado Resta\n\n ");
  45.  
  46. printf ("Escribe el primer valor "); scanf ("%d",&x);    
  47. printf ("Escribe el segundo valor "); scanf ("%d",&y);
  48. z= x-y;
  49. printf ("\n%d - %d = %d ",x,y,z);      
  50. }    
  51.  
  52. else  if (opcion==3){
  53.  
  54.        printf ("\nHa Seleccionado Multiplicacion\n\n ");
  55.  
  56. printf ("Escribe el primer valor "); scanf ("%d",&x);    
  57. printf ("Escribe el segundo valor "); scanf ("%d",&y);
  58. z= x*y;
  59. printf ("\n%d * %d = %d ",x,y,z);      
  60. }
  61.  
  62. else if (opcion==4){
  63.  
  64.      printf ("\nHa Seleccionado Division\n\n ");
  65.  
  66. printf ("Escribe el primer valor "); scanf ("%d",&x);    
  67. printf ("Escribe el segundo valor "); scanf ("%d",&y);
  68. z= x/y;
  69. printf ("\n%d / %d = %d ",x,y,z);      
  70. }
  71.  
  72. else if (menu==6){
  73.  
  74.  
  75. printf ("HA SELECCIONADO EL SEGUNDO MENU\n\n ");
  76.  
  77. printf ("Escriba el primer valor "); scanf ("%d",&a);
  78. printf ("Escriba el segundo valor "); scanf ("%d",&b);
  79.  
  80. if (a>b)  {                            
  81.  
  82. printf ("\nEl Mayor es %d ",a);
  83. printf ("\nEl Menor es %d ",b);      
  84. }
  85.  
  86.  
  87.  
  88. else  if (a<b) {
  89.  
  90. printf ("\n El Mayor es %d \n",b);
  91. printf ("\n El Menor es %d \n",a);      
  92. }
  93.  
  94.  
  95. else {
  96.     printf ("\nSon Iguales \n ");
  97.     }
  98. }
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.     system ("pause ");
  106.     }


Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: engel lex en 18 Febrero 2015, 21:12 pm
mira tus variables

Código
  1. int menu,opcion,a,b,x,y,z=0;

tienes 7 variables y solo "z" está inicializada (se le dio valor inicial), el resto contienen "basura" que había en esas posiciones de la ram...

tu proceso lee e imprime en el primer menú del 1 al 4 "x",  "y" y "z"

Código
  1. printf ("Escribe el primer valor "); scanf ("%d",&x);    
  2. printf ("Escribe el segundo valor "); scanf ("%d",&y);
  3. //----------------//
  4. printf ("\n%d + %d = %d ",x,y,z);  


fijate las anidaciones (los if dentro de if) el identarlos (darle tantos espacios a la izquierda como adentro estén) ayuda a identificar el codigo... te doy el tuyo arreglado

mira tu codigo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (){
  5.  
  6. int menu,opcion,a,b,x,y,z=0;
  7.  
  8. printf ("Seleccione el cero (0) para el primer menu\n ");
  9. printf ("Seleccione el seis (6) para el segundo menu\n\n ");
  10. printf ("0-Primer Menu\n\n6-Segundo Menu\n\n");
  11. scanf ("%d",&menu);
  12.  
  13. if (menu==0) {
  14. printf ("\nHA SELECCIONADO EL PRIMER MENU\n\n ");
  15. printf ("Seleccione el numero de la operacion que quiere hacer\n\n ");
  16. printf ("Ejemplo: Si selecciona el uno (1) los dos valors que escriba se van a sumar\n\n ");                            
  17. printf ("Menu de Opciones\n\n 1-Suma \n 2-Resta \n 3-Multiplicacion \n 4-Division\n ");
  18. printf ("\nSeleccione Una Opcion\n\n "); scanf ("%d",&opcion);
  19. }
  20. if (opcion==1){
  21. printf ("\nHa Seleccionado Suma\n\n ");
  22. printf ("Escribe el primer valor "); scanf ("%d",&x);    
  23. printf ("Escribe el segundo valor "); scanf ("%d",&y);
  24. z= x+y;
  25. printf ("\n%d + %d = %d ",x,y,z);      
  26. }
  27. else if (opcion==2){
  28. printf ("\nHa Seleccionado Resta\n\n ");
  29. printf ("Escribe el primer valor "); scanf ("%d",&x);    
  30. printf ("Escribe el segundo valor "); scanf ("%d",&y);
  31. z= x-y;
  32. printf ("\n%d - %d = %d ",x,y,z);      
  33. }    
  34. else  if (opcion==3){
  35. printf ("\nHa Seleccionado Multiplicacion\n\n ");
  36. printf ("Escribe el primer valor "); scanf ("%d",&x);    
  37. printf ("Escribe el segundo valor "); scanf ("%d",&y);
  38. z= x*y;
  39. printf ("\n%d * %d = %d ",x,y,z);      
  40. }
  41. else if (opcion==4){
  42. printf ("\nHa Seleccionado Division\n\n ");
  43. printf ("Escribe el primer valor "); scanf ("%d",&x);    
  44. printf ("Escribe el segundo valor "); scanf ("%d",&y);
  45. z= x/y;
  46. printf ("\n%d / %d = %d ",x,y,z);      
  47. }
  48. else if (menu==6){
  49. printf ("HA SELECCIONADO EL SEGUNDO MENU\n\n ");
  50. printf ("Escriba el primer valor "); scanf ("%d",&a);
  51. printf ("Escriba el segundo valor "); scanf ("%d",&b);
  52. }
  53. if (a>b)  {                            
  54. printf ("\nEl Mayor es %d ",a);
  55. printf ("\nEl Menor es %d ",b);      
  56. }
  57. else  if (a<b) {
  58. printf ("\n El Mayor es %d \n",b);
  59. printf ("\n El Menor es %d \n",a);      
  60. }
  61. else {
  62. printf ("\nSon Iguales \n ");
  63. }
  64. system ("pause ");
  65. }
  66.  

desde la linea 56 debería estar dentro del opcion 6


Título: Re: Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda
Publicado por: Nicoloreido en 19 Febrero 2015, 04:44 am
Gracias por la ayuda pero ya me pasaron los códigos, y queda así sin errores  :xD:
Código:
#include <stdio.h>


int main (){
   
    int m,s,x,y,z;
     
   
printf ("Seleccione el cero para Comparacion de Valores\nSeleccione el seis para Operaciones Aritmeticas\n\n");
scanf ("%d",&x);
if (x==0){       
printf ("HA SELECCIONADO EL PRIMER MENU\n\n"); 
printf ("Escriba el primer valor"); scanf ("%d",&m);
printf ("Escriba el segundo valor"); scanf ("%d",&s);
if (m>s)  {                           
printf( "%d Mayor que %d",m,s ); }
if (s>m) {printf ("%d Mayor que %d",s,m );}
if (s==m) {printf ("%d Es Igual a %d",s,m);}
         
}
   
if (x==6) {             
                 
printf ("\nHA SELECCIONADO EL SEGUNDO MENU\n\n");
printf ("\n\n 1-Suma \n 2-Resta \n 3-Multiplicacion \n 4-Division\n");
scanf ("%d",&y);
if (y==1){ 
printf ("\nHa Seleccionado Suma\n\n");       
printf ("Escribe el primer valor"); scanf ("%d",&m);     
printf ("Escribe el segundo valor"); scanf ("%d",&s);
z= m+s;
printf ("\n%d + %d = %d",m,s,z);       
}
if (y==2){   
printf ("\nHa Seleccionado Resta\n\n");           
printf ("Escribe el primer valor"); scanf ("%d",&m);     
printf ("Escribe el segundo valor"); scanf ("%d",&s);
z= m-s;
printf ("\n%d - %d = %d",m,s,z);       
}   
if (y==3){           
printf ("\nHa Seleccionado Multiplicacion\n\n");     
printf ("Escribe el primer valor"); scanf ("%d",&m);     
printf ("Escribe el segundo valor"); scanf ("%d",&s);
z= m*s;
printf ("\n%d * %d = %d",m,s,z);       
}
if (y==4){   
printf ("\nHa Seleccionado Division\n\n");     
printf ("Escribe el primer valor"); scanf ("%d",&m);     
printf ("Escribe el segundo valor"); scanf ("%d",&s);
z= m/s;
printf ("\n%d / %d = %d",m,s,z);  }     
}
     getch ();
     }