elrincondelc.com
Inicio :: Foros
Usuario: Clave: Regístrate
Salir


calculadora basica en c con funcion switch

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro elrincondelc.com -> Acción requerida
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
apocaliptica100



Registrado: 12 Feb 2011
Mensajes: 31

MensajePublicado: 16/02/2011 8:09 pm Responder citando
Título: calculadora basica en c con funcion switch

ola espero que me puedan ayudar para un programa k esoty asindo de tarea lo que tengo que aser es una calculadora en de v c k pueda sumar restar multiplicar y dividir bueno aki esta parte del programa que echo espero que me puedan corregir en lo que me falte o loq ue tengo mal espero su ayuda comunidad del rincon c aki esta lo que llevo
#include<stdio.h>
#include<conio.h>
int main()
{
float a,b,f,c;
char signos ,z;
z="+";z="-";z="*";z="/";
printf("introduce numero : ");
scanf("%i", &a);
printf("introduce operacion : ");
scanf("%c", &z);
printf("introduce numero : ");
scanf("%d", &b);
printf("preciane enter o igual : ");
scanf("%i", &f);
switch()
{
case 1 : z="+"
c=a+b;
printf();
break;
case 2: z="-";
c=a-b
printf();
break;
case 3: z="*"
c=a*b;
printf();
break
case 4 : Z="/"
c=a/b;
printf ();
break;
default :
printf ("error")
getch();
return 0 ;
}
_________________
^^
Volver arriba
Ver perfil del usuario Enviar mensaje privado
LeViato



Registrado: 14 Dic 2006
Mensajes: 256

MensajePublicado: 17/02/2011 3:20 am Responder citando
Título:

Por favor, escribe correctamente en lenguaje natural para que te podamos entender correctamente.

Lee a las normas del foro.

Introduce tu código en el mensaje con los marcadores apropiados.

Compila tu código antes de pedir ayuda, y corrige errores básicos (ausencia de ';', identificadores de variables incorrectos, uso inapropiado de 'switch'...)

Es aconsejable evitar librerías no estándar, sobretodo si existen alternativas válidas: se puede prescindir de conio.h.

Si necesitas más ayuda, te aconsejo que sigas estas pautas y seguramente podremos ayudarte mejor.

Saludos.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
vastago



Registrado: 06 Ene 2011
Mensajes: 20

MensajePublicado: 17/02/2011 9:00 am Responder citando
Título:

Tienes muchos errores:

1.- Declaraste las variables 'a','b','f' y 'c' como 'float', por lo que al leerlos debes usar la mascara usual: %f. Eso de %i no tiene sentido, al igual que el %d (que se usa para los tipo 'int')

2.- Las sentencias

Código:
z="+";z="-";z="*";z="/";


no tienen sentido, al igual que

Código:
printf("preciane enter o igual : ");
scanf("%i", &f);


3.- La funcion 'switch' necesita como argumento la variable que analizara ('z', en este caso, porque quieres saber si se sumara, restara, etc). Es decir, deberia ir asi:

Código:
switch(z)
{
     ...
}


Ademas, en los 'case' no va necesariamente una numeracion, sino lo que se hará si la variable que se paso a 'switch' ('z' en este caso) toma ese valor. Ejemplo:

Código:
switch(z)
{
     case '+': ...
     break;
     case '-': ...
     break;
     case '*': ...
     break;
     case '/': ...
     break;
     default: ...
}


4.- Por lo anterior, las sentencias que pusiste al inicio de cada 'case', como esta

Código:
case 1 : z="+"


no son necesarias

5.- No pusiste la llave '}' que cierra el 'switch'. O mejor dicho, no pusiste la llave que cierra el 'main', porque el compilador entenderá que la ultima llave cierra el 'switch'. Si sigo tu lógica, la llave que cierra el 'switch' deberia ir aqui

Código:
default :
printf ("error")
} <-------- AQUI
getch();
return 0 ;


6.- Para terminar: Falta MUCHOS ';' al final de sentencias.

Espero que te sirva. Y porfavor, hazle caso a LeViato, que de esta forma sera mucho mas facil ayudarte Very Happy
Saludos
_________________
Donde tu ves caos, yo veo orden: O yo estoy ciego... O veo mejor que tú
Volver arriba
Ver perfil del usuario Enviar mensaje privado
apocaliptica100



Registrado: 12 Feb 2011
Mensajes: 31

MensajePublicado: 17/02/2011 2:32 pm Responder citando
Título:

si sigo las instrucciones que me distes entonses el programa debe ir mas aomenos asi si no me equivoco pero al momento de ejeculatar el programa me carca error en c=a+b; no se ha que se pueda dever espero que me ayuden a llegar ala solucion aqui dejo el programa en c para saber si voy en lo corecto
#include<stdio.h>
#include<conio.h>
int main()
{
float a,b,f,c;
char signos ,z;
printf("introduce numero : ");
scanf("%f", &a);
printf("introduce operacion : ");
scanf("%c", &z);
printf("introduce numero : ");
scanf("%f", &b);
printf("preciane enter o igual : ");
scanf("%f", &f);
switch(z)
{
case 1 : z="+"
c=a+d;
printf();
break;
case 2: z="-";
c=a-b
break;
case 3: z="*"
c=a*b;
break
case 4 : Z="/"
c=a/b;
break;
default
printf ("error")
}
getch();
return 0 ;
}
_________________
^^
Volver arriba
Ver perfil del usuario Enviar mensaje privado
vastago



Registrado: 06 Ene 2011
Mensajes: 20

MensajePublicado: 17/02/2011 4:35 pm Responder citando
Título:

Amigo, tres cosas:

1.- No hiciste todas las correcciones. Vuelve a leer mi post con detencion, y fijate en todo lo que digo. Si no comprendes alguna parte, dilo.
2.- Postea tu codigo fuente de esta forma

Código:
[code]
...
Tu Codigo
...
[/code]


Para que se pueda entender mejor

3.- Copia el error que te lanza el compilador y pégalo aqui para la proxima.

Entonces, veremos que tal =)
_________________
Donde tu ves caos, yo veo orden: O yo estoy ciego... O veo mejor que tú
Volver arriba
Ver perfil del usuario Enviar mensaje privado
digies



Registrado: 18 Nov 2005
Mensajes: 998
Ubicación: Blumenau (Br)

MensajePublicado: 17/02/2011 6:04 pm Responder citando
Título:

Hola apocaliptica100

La variable z es de tipo carácter y no de cadena.

Ya es tiempo que busques y leas un buen libro o turorial de C porque tienes errores muy básicos. Puedes comenzar con el curso de Gorka.

Un saludo
_________________
With enough eyes, all bugs are easy to find.

Eric S. Raymond
Volver arriba
Ver perfil del usuario Enviar mensaje privado
cheroky



Registrado: 22 Sep 2005
Mensajes: 2556
Ubicación: Valladolid (España)

MensajePublicado: 17/02/2011 10:58 pm Responder citando
Título:

Hola apocaliptica100

Siguiendo la política que hay en otros foros menos permisivos que este, he marcado en rojo tus faltas de ortografía, sin contar signos de puntuación e incoherencias. Espero que las corrijas y sigas las recomendaciones que te han dado, como son: leer las reglas, preguntar de forma clara y concisa, utilizar las etiquetas code y por ultimo revisar un tutorial ya que tus errores son demasiado elementales.

En el caso contrario de que mantengas esa actitud entenderé que quieres ir a tu aire, cosa muy respetable, pero tomaré la determinación de enviar el tema mas los siguientes que vengan al subforo Acción requerida.
Esto es una comunidad y hay unas reglas muy básicas y muy sencillas de cumplir.

Lo único que te disculparía es que tuvieras algún tipo de minusvalía física o psíquica, si es así háznoslo saber y lo entenderemos con empatía y cariño :)

∙∃0ƒ∙
_________________
La cuestión no es si hay vida inteligente en otros planetas lejanos. La cuestión es si hay vida inteligente aquí.
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro elrincondelc.com -> Acción requerida
Página 1 de 1 Todas las horas están en GMT - 8 Horas

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com, 1999-2007

Un proyecto de UrlanHeat.com