Duda en "if"

Iniciado por josevc, 30 Octubre 2012, 22:03 PM

0 Miembros y 1 Visitante están viendo este tema.

josevc

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.

avesudra

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í:
Código (cpp) [Seleccionar]
if(oper == '+')
{

}
Regístrate en

NeoB

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.

josevc

Muchas gracias por vuestros comentarios  ;D

rir3760

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