Me imprime: El mayor es 59, el menor es 2, en 1er menu no se porque, ayuda

Iniciado por Nicoloreido, 18 Febrero 2015, 01:47 AM

0 Miembros y 1 Visitante están viendo este tema.

Nicoloreido



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


   



engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Nicoloreido

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

engel lex

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....
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Nicoloreido

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. Collins

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){
   
}

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Nicoloreido

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. Collins

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

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.