Ejercicio paso base 10 a binario en C++

Iniciado por Electro93, 1 Diciembre 2012, 14:47 PM

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

Electro93

Buenas, estaba intentando programar un ejercicio que convierte base 10 a binario cuando me ha salido el error "lvalue required as left operand of assignment" en la función siguiente:

int Decimal_A_Binario(int  num_bin[],int num_10,int num_bits)
{
  int aux,i,resto;
  for(aux=num_10;aux=1;i=num_bits;i=0;i--)
  {
    aux%2=resto;
    aux/2=aux;
   num_bin =resto;
  }

}


Supongo que tendrá bastante errores, espero que podais ayudarme, gracias!!

avesudra

Hola Electro93 lo que no está bien es esto:
Código (cpp) [Seleccionar]
aux%2=resto;
aux/2=aux;

El error quiere decir que estas líneas requieren un valor en la izquierda(variable) como operando de asignación.Es decir que si tu a una variable quieres asignarle algo tiene que ser así:
Código (cpp) [Seleccionar]

resto = aux % 2;
aux = aux / 2;

Tiene que estar la variable a la que le quieres asignar lo que sea primero, y después las operaciones.
La línea 2 de este último código que he puesto puedes sustituirla por:
Código (cpp) [Seleccionar]

aux /= 2;


Tiene otro error pero a ver si te das cuenta tú ( es de lógica, no por una mala programación y te doy una pista que tiene que ver con el array num_bin). Ah y utiliza las etiquetas Geshi que colorean el código y da gusto leerlo.

¡Un saludo!
Regístrate en

Electro93

Muchas gracias tio! por fin lo solucioné!
Ahora el problema es que en esta linea : for(aux=num_10;aux=1;i=num_bits-1;i=0;i--)

me da el tipico error expected ")" before ";" token

avesudra

Es que el for solo puede tener dos puntos y coma:

Código (cpp) [Seleccionar]

for(int i = 5; i !=0 ; --i)
{

}

Tiene su estructura:
Código (cpp) [Seleccionar]

for(inicialización del iterador ; condición ; aumento o disminución del iterador)
{
   código
}
Regístrate en