| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
apocaliptica100
Registrado: 12 Feb 2011 Mensajes: 31
| Publicado: 16/02/2011 8:09 pm | | | 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 | |  | LeViato
Registrado: 14 Dic 2006 Mensajes: 256
| Publicado: 17/02/2011 3:20 am | | | 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 | |  | vastago

Registrado: 06 Ene 2011 Mensajes: 20
| Publicado: 17/02/2011 9:00 am | | | 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:
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
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  Saludos _________________ Donde tu ves caos, yo veo orden: O yo estoy ciego... O veo mejor que tú |
| | Volver arriba | |  | | apocaliptica100
Registrado: 12 Feb 2011 Mensajes: 31
| Publicado: 17/02/2011 2:32 pm | | | 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 | |  | vastago

Registrado: 06 Ene 2011 Mensajes: 20
| Publicado: 17/02/2011 4:35 pm | | | 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 | |  | digies

Registrado: 18 Nov 2005 Mensajes: 998 Ubicación: Blumenau (Br)
| Publicado: 17/02/2011 6:04 pm | | | 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 | |  | | cheroky
Registrado: 22 Sep 2005 Mensajes: 2556 Ubicación: Valladolid (España)
| Publicado: 17/02/2011 10:58 pm | | | 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 | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |