• Jueves 18 de Abril de 2024, 08:15

Autor Tema:  Operadores en una variables (lenguaje C)  (Leído 2078 veces)

DanielC#

  • Miembro activo
  • **
  • Mensajes: 39
  • Nacionalidad: ar
    • Ver Perfil
Operadores en una variables (lenguaje C)
« en: Domingo 13 de Abril de 2014, 01:45 »
0
Hola a todos.
La siguiente forma de usar los operadores funciona:

Código: C
  1. #include <stdio.h>
  2.  
  3. #define MAS +
  4.  
  5. int main(void){
  6.      int a=5;
  7.        
  8.      a = a MAS 5;
  9.  
  10.      printf("\n Resultado %d", a);     
  11.        
  12.      return 0;
  13. }
  14.  

¿Se podrá lograr algo como lo siguiente:? y que funcionen realmente como operadores?
Código: C
  1. char operadores[] = {"%", "*", "+", "-", "/"};

Código: C
  1. a = a operadores[2] 5;

Bueno es todo.
Saludos y desde ya muchas gracias por su tiempo.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

chenech

  • Miembro activo
  • **
  • Mensajes: 96
    • Ver Perfil
Re:Operadores en una variables (lenguaje C)
« Respuesta #1 en: Domingo 13 de Abril de 2014, 14:39 »
0
Hola Daniel, yo creo que eso no se puede hacer, no lo permite la sintaxis de C o C++.
Si a alguien se le ocurre como, pero a mi no, aparte que no le veo la necesidad.
Un saludo.

DanielC#

  • Miembro activo
  • **
  • Mensajes: 39
  • Nacionalidad: ar
    • Ver Perfil
Re:Operadores en una variables (lenguaje C)
« Respuesta #2 en: Domingo 13 de Abril de 2014, 15:57 »
0
Hola chenech.
Muchas gracias por responder, el sentido es reemplazar estas 12 líneas de código por una sola,

Código: C
  1. switch(op){
  2.         case'+':resultado = atoi(aux[0]) + atoi(aux[1]);
  3.                 break;
  4.         case'-':resultado = atoi(aux[0]) - atoi(aux[1]);
  5.                 break;
  6.         case'*':resultado = atoi(aux[0]) * atoi(aux[1]);
  7.                 break;
  8.         case'/':resultado = atoi(aux[0]) / atoi(aux[1]);
  9.                 break;
  10.         case'%':resultado = atoi(aux[0]) % atoi(aux[1]);
  11.                 break;
  12. }

Seguiré leyendo y consultando para ver si lo logro, el caso es saber cómo guarda en memoria esta línea el preprocesador, tal vez allí esté el secreto.-

Código: C
  1. #define MAS +
  2.  

Saludos.
Daniel

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-