duda con función en c

Iniciado por fernaEDLP, 13 Noviembre 2018, 04:42 AM

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

fernaEDLP

Buenas como va?, tengo una duda con un ejercicio de calculadora en c, pero no c si esta bien redactado, es un ejercicio de calculadora de los cuales esta lleno en Internet pero este dice lo siguiente:
Escriba una función que tome dos números enteros y un carácter como argumento. El valor de retorno debe ser un cálculo efectuado sobre los dos números según indique el carácter, que podrá ser '+', '-', '*' o '/'. Usar la estructura de control switch



ahora mi duda es, yo puedo definir por ejemplo una función así int calculadora(int n1,int n2, char c) ?
para mi eso esta mal pero entiendo que lo tengo que hacer así?

gracias de antemano

_TTFH_3500

Código (cpp) [Seleccionar]
int calcular(int a, char op, int b) {
  int result;
  switch(op) {
    case '+':
      result = a + b;
      break;
\\ Agregar los demás casos
    default:
      printf("Operación no válida\n");
      assert(false);
      break;
  }
  return res;
}


int c = calcular(2, '+', 2);
assert(c == 4);

fernaEDLP


fernaEDLP

Otra duda, ya hice el código

int calcular(int a,char op,int b);

int main()
{
    int num1,num2,resultado;
    char c;
    printf("ingrese primer numero\n");
    scanf("%d",&num1);
    printf("ingrese segundo numero\n");
    scanf("%d",&num2);
    printf("ingrese caracter\n");
    scanf("%c",&c);
    resultado=calcular(int a,char op,int b);
    printf("el resultado de la operacion es %d\n",resultado);

    return 0;


}
int calcular(int a,char op,int b)
{
    int result;
    switch(op)
    {
        case'+':result=a+b;
        break;
        case'-':result=a-b;
        break;
        case'*':result=a*b;
        break;
        case'/':result=a/b;
        break;
        default:printf("opcion no valida\n");
    }
    return result;
}

Pero no c que me dice en la linea 15 too few arguments to function 'calcular'
y después dice error expected expresion before 'int'

es obvio que algo hice mal yo, pero se me traba el cerebro

























MAFUS

En esa línea copiaste el prototipo de la función tal cual. Una vez que usas la función ya tienes que pasarle las variables con qué trabajas:
resultado = calcular(num1, c, num2);

fernaEDLP