Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: zZsamuelZz4 en 1 Diciembre 2017, 17:38 pm



Título: [AYUDA] Código en C
Publicado por: zZsamuelZz4 en 1 Diciembre 2017, 17:38 pm
Hola a todos, necesito ayuda con el código de un programita sencillo en C. El código es el siguiente:

Código:
/* Haz un menú que considere las siguientes opciones:
1: Eleva al cubo un número.
2: Determinar si un número es par o impar.
3: Salir */

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

int main () {

int opcion, n2;
float n1, cubo;

printf ("\t MENU MATEMATICO");
printf ("\n\n\nFunciones disponibles:\n\n");
printf ("\n1. Elevar un numero al cubo.");
printf ("\n2. Saber si un numero es PAR o IMPAR.");
printf ("\n3. Salir del menu.\n\n\n");
printf ("Seleccione una opcion: "); scanf ("&i",&opcion);

switch (opcion) {
case 1: system ("cls");
fflush (stdin);
printf ("\nDigita un numero para elevar al cubo: ");
scanf ("%f",&n1);
cubo = pow (n1, 3);
printf ("\nResultado: %.2f",cubo);
break;

case 2: system ("cls");
fflush (stdin);
printf ("\nDigita un numero para saber si es par o impar: ");
scanf ("%i",&n2);
if (n2 % 2 == 0) {
printf ("\nEl numero %i es PAR",n2);
} else {
printf ("\nEl numero %i es IMPAR",n2);
}
break;

case 3:
break;

default: printf ("\nHas introducido un numero incorrecto.");
}

system ("pause");
return 0;
}


El problema es que cuando compilo y selecciono cualquier número siempre me lleva al case 1 . Da igual que meta el número 1, 2 ó 3. Siempre me pide que digite un número para elevar al cubo. ¿Alguien puede ayudarme?

Saludos!



Título: Re: [AYUDA] Código en C
Publicado por: PJ Yeah en 1 Diciembre 2017, 19:47 pm
Código
  1. printf ("Seleccione una opcion: "); scanf ("&i",&opcion);
En esa línea está el error específicamente en el scanf es "%i", no "&i"


Título: Re: [AYUDA] Código en C
Publicado por: zZsamuelZz4 en 1 Diciembre 2017, 19:59 pm
Joder, mira que lo he revisado veces y ni me he dado cuenta.

Muchísimas gracias!!