Test Foro de elhacker.net SMF 2.1

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


#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
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 ");
     }


Mete esa parte del código dentro de:

else if (menu==6){
   
}
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
#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, 21:12 PM
mira tus variables

Código (cpp) [Seleccionar]
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 (cpp) [Seleccionar]
printf ("Escribe el primer valor "); scanf ("%d",&x);     
printf ("Escribe el segundo valor "); scanf ("%d",&y);
//----------------//
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 (cpp) [Seleccionar]
#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 ");
}


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:

#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 ();
     }