calculadora basica en c con funcion switch

En este foro irán los mensajes cuyo asunto viola las normas del foro. Por ejemplo los que contienen la palabra "urgente", "ayuda", "re:", mayúsculas, o cualquier otra forma de llamar la atención.

Se quedarán aquí hasta que el autor del mensaje lo modifique. Mientras el mensaje esté aquí no podrá recibir respuestas.
Responder
Mensaje
Autor
apocaliptica100
Mensajes: 31
Registrado: 12/02/2011 2:33 pm

calculadora basica en c con funcion switch

#1 Mensaje por apocaliptica100 » 16/02/2011 8:09 pm

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 ;
}
^^

Avatar de Usuario
LeViato
Mensajes: 256
Registrado: 14/12/2006 12:00 am

#2 Mensaje por LeViato » 17/02/2011 3:20 am

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.

Avatar de Usuario
vastago
Mensajes: 20
Registrado: 06/01/2011 2:04 pm

#3 Mensaje por vastago » 17/02/2011 9:00 am

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: Seleccionar todo

z="+";z="-";z="*";z="/";
no tienen sentido, al igual que

Código: Seleccionar todo

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: Seleccionar todo

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: Seleccionar todo

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: Seleccionar todo

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: Seleccionar todo

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 :D
Saludos
Donde tu ves caos, yo veo orden: O yo estoy ciego... O veo mejor que tú

apocaliptica100
Mensajes: 31
Registrado: 12/02/2011 2:33 pm

#4 Mensaje por apocaliptica100 » 17/02/2011 2:32 pm

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 ;
}
^^

Avatar de Usuario
vastago
Mensajes: 20
Registrado: 06/01/2011 2:04 pm

#5 Mensaje por vastago » 17/02/2011 4:35 pm

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: Seleccionar todo

[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ú

Avatar de Usuario
digies
Mensajes: 1001
Registrado: 18/11/2005 12:00 am
Ubicación: Blumenau (Br)

#6 Mensaje por digies » 17/02/2011 6:04 pm

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

Avatar de Usuario
cheroky
Mensajes: 2571
Registrado: 22/09/2005 11:00 pm
Ubicación: Valladolid (España)

#7 Mensaje por cheroky » 17/02/2011 10:58 pm

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ƒ∙
Imagen

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado