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:
if(oper=+)
{
}
Este último código estaría mal planteado, ¿cierto? ¿Como podría hacerlo?
Os agradecería que me orientaseis :)
Un saludo.
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 == '+')
{
}
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.
Muchas gracias por vuestros comentarios ;D
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");
scanf("%d %d", &a, &b);
puts("Introduce un caracter");
scanf(" %c", &oper);
Un saludo