problema tonto en c

Spie

pues seguro q es una tonteria de problema pero es q no soy capaz a verlo. a ver si me echais una manita. el caso es q cuando introduzco el primer numero se me cuelga la pantalla del dos

#include <stdio.h>

int main (void)
{


int x,suma,resta,division,producto,a,b;

printf ("Introduzca la opcion que desee realizar: \na) suma \nb) resta \nc) producto \nd) division");
scanf ("&c",x);
fflush (stdin);

printf ("introduzca dos numeros");
scanf ("%d",a);
fflush (stdin);
scanf ("%d",b);
fflush (stdin);

switch (x)
{
case 'a':
suma=a+b;
printf ("el resultado de la suma es: %d \n",suma);
break;
case 'b':
resta=a-b;
printf ("el resultado de la resta es: %d \n",resta);
break;
case 'c':
producto=a*b;
printf ("el resultado del producto es: %d\n",producto);
break;
case 'd':
division=a/b;
printf ("el resultado de la division es: %d \n",division);
break;
default: printf ("opcion incorrecta");
}
return 1;


}

LOc0

http://www.conclase.net/c/librerias/funcion.php?fun=scanf
Salu2 ;)

JuAn4k4

char x[bufsize];

y en el switch :

switch (*x)

de todas formas usando scanf, si te ponen: analfabeto, te lo tomara como si quieres sumar. xD

PD: Yo nunca uso scanf asiq tampoco se muy bien lo que se puede y no se puede hacer..

DaGGoTH

Cuando lees algo con scanf, le pasas el valor por referencia a la variable en que lo quieres meter. Si lo quieres meter en "a", tienes que poner scanf("%d", &a);

IAF

como dice #4, a mi me pasa muchissimas veces xD

Shakurita

#4 y ademas de olvidar el ampersand en la variable, lo has puesto en la c de char, sería %, osea scanf("%c",&x);

printf ("Introduzca la opcion que desee realizar: \na) suma \nb) resta \nc) producto \nd) division");
scanf ("&c",x);

mkarra

te has dejao tos los & del scanf

BRaDoLH

Aparte de los scanf que te falta el & tienes que declarar las variables char, tu lo has puesto como int.

char x;

printf("elige opcion 1) 2) 3)");
scanf("%c",&x);

if(x=='1')
{
}

Vorhaut

^ Declara la variable x como char.
|
|
|

printf ("Introduzca la opcion que desee realizar: \na) suma \nb) resta \nc) producto \nd) division");
gets(x);
fflush (stdin);

En vez de usar scanf para pedir un solo caracter, usa el gets, que te hace lo mismo, pero solo para caracteres, no para variables numericas.

BRaDoLH

Yo el gets lo utilizo para cadena de carácteres y si es cierto que me he colao en el codigo de arriba XD, sería a,b,c .
Para introducir numeros con poner %i y ==1 ya tira, aunque la forma que puse arriba tmb es valida.

shairer

tienes q declarar la x como variable tipo char.. sino :S q estas metiendo en un integer un char???

Usuarios habituales

  • BRaDoLH
  • Vorhaut
  • mkarra
  • IAF
  • DaGGoTH
  • JuAn4k4
  • Spie