Autor
|
Tema: Duda en "if" (Leído 1,538 veces)
|
josevc
Desconectado
Mensajes: 15
|
Buenas soy nuevo en este mundo del C, haber si alguien de por aquí me puede echar una mano. Estoy tratando de hacer el siguiente ejercicio: Realiza un programa que lea dos números por teclado y a continuación un carácter que indique la operación aritmética a realizar con ellos(+ - * /). El programa devuelve, por pantalla, el resultado de dicha operación.Comencé así: #include <stdio.h>
int main(){ int a,b; char oper; puts("Introduce dos valores\n"); scanf("%d %d",&a,&b); fflush(stdin); puts("Introduce un caracter"); scanf("%c",&oper); Lo que se me ocurre es poner, "si oper = +, entonces hacer a+b" y lo mismo para las otras 3 operaciones (* , - , /) Pero ahí mi duda: Este último código estaría mal planteado, ¿cierto? ¿Como podría hacerlo? Os agradecería que me orientaseis Un saludo.
|
|
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Hola josevc , está bien planteado solo que , como creo que puedo suponer, sabes que los caracteres en realidad son números designados por una codificación , en el caso de C , por ASCII , así el + sólo no lo puedes poner para comparar , lo tendrías que englobar con unas comillas simples para hallar el valor decimal. Quedaría así: if(oper == '+') { }
|
|
|
En línea
|
Regístrate en
|
|
|
NeoB
Desconectado
Mensajes: 69
|
Para comparar un carácter debes encerrarlo en comillas simples: if ( oper == '+' )
Además, fflush() espera un stream de salida, y tu lo estás usando con stdin. Usa otros modos, de otra manera, el comportamiento no está definido.
|
|
|
En línea
|
|
|
|
josevc
Desconectado
Mensajes: 15
|
Muchas gracias por vuestros comentarios
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
En lugar de "fflush(stdin);" puedes utilizar " %c" en la llamada a "scanf" para leer el operador. De esta forma: puts("Introduce dos valores\n"); puts("Introduce un caracter");
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
"""BUSCO EJEMPLO VB PARA ENVIAR MAILS""""
Programación Visual Basic
|
gera
|
1
|
6,353
|
1 Septiembre 2005, 00:14 am
por programatrix
|
|
|
De donde puedo descargar utilidades: "Formas", "Estilos", "Motivos", D
Diseño Gráfico
|
Ad0nis
|
2
|
8,408
|
2 Septiembre 2006, 15:48 pm
por Ad0nis
|
|
|
[Ayuda] modificar "start page" en "internet explorer" con "batch"
Scripting
|
taton
|
7
|
16,660
|
20 Septiembre 2006, 01:45 am
por taton
|
|
|
Duda sobre meta http-equiv="Content-Type" content="text/html; charset=utf-8"
Desarrollo Web
|
Hadess_inf
|
3
|
12,277
|
22 Julio 2010, 06:44 am
por Morris
|
|
|
recursos visual basic, """"""proceso inmortal"""""
Análisis y Diseño de Malware
|
Dark4ngel
|
7
|
13,374
|
3 Noviembre 2011, 10:42 am
por Dark4ngel
|
|