Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: fernaEDLP en 13 Noviembre 2018, 04:42 AM

Título: duda con función en c
Publicado por: fernaEDLP en 13 Noviembre 2018, 04:42 AM
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
Título: Re: duda con función en c
Publicado por: _TTFH_3500 en 13 Noviembre 2018, 12:26 PM
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);
Título: Re: duda con función en c
Publicado por: fernaEDLP en 13 Noviembre 2018, 22:57 PM
graciasss!!
Título: Re: duda con función en c
Publicado por: fernaEDLP en 14 Noviembre 2018, 05:04 AM
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
























Título: Re: duda con función en c
Publicado por: MAFUS en 14 Noviembre 2018, 07:05 AM
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);
Título: Re: duda con función en c
Publicado por: fernaEDLP en 14 Noviembre 2018, 22:30 PM
graciass!!!