ayuda c++ error non-lvalue in assignement

      • 1
      • mensajes
      • miembro desde
      • 01/02/12
    #1 ayuda c++ error non-lvalue in assignement

    HOla acabo de crear la cuenta y soy nuevo pero si necesito ayuda. empiezo con c++ y quiero saber cual es mi problema en este programa sencillo

    #include <iostream>
    #include <math.h>

    using namespace std;

    int num1, num2;
    int res;

    int main()
    {
    int num1 = 0, num2 = 0;
    cout<<"ingrese el primer numero impar: ";
    cin>>num1;

    if(num1>=1 && num1<=100)
    {
    if (num1 % 2 = 0)******************
    {
    cout<<"!el numero ingresado esta fuera del rango es es par!";
    }
    else
    {
    cout<<"ingrese el segundo numero impar: ";
    }


    cin>>num2;
    }

    if(num2>=1 && num2<=100)
    {
    if (num2 % 2 = 0)*************************
    {
    cout<<"!el numero ingresado esta fuera del rango es es par!";
    }
    else
    {
    res = num1+num2;
    cout<<"la suma de ambos numeros impares es: "<<res<<"\n";
    }
    }

    system ("pause");
    return 0;
    }
    abajo me tira el error "non-lvalue in assignement" y me subraya las lineas del codigo que marque con asteriscos ****
    por que? :O ayuda!!!

  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    1 comentarios / 265 Visitas

      • 8,746
      • mensajes
      • miembro desde
      • 27/11/07
    02/02/2012
    #2 Re: ayuda c++ error non-lvalue in assignement

    Si querés preguntar si un número es igual a otro, debés indicarlo con un doble signo =, así:
    if (a == b)
    De lo contrario, el compilador interpreta que se trata de una asignación, y entiende que querés hacer que 2 sea 0:
    2 = 0 en:
    if (num % 2 = 0)


    Un lvalue es lo que puede ir a la izquierda de una asignación (viene de "left value") y 2 no puede ir a la izquierda del signo de asignación = ya que es una constante.

IR ARRIBA