Foro de elhacker.net

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
  1. int calcular(int a, char op, int b) {
  2.  int result;
  3.  switch(op) {
  4.    case '+':
  5.      result = a + b;
  6.      break;
  7. \\ Agregar los demás casos
  8.    default:
  9.      printf("Operación no válida\n");
  10.      assert(false);
  11.      break;
  12.  }
  13.  return res;
  14. }

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:
Código:
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!!!