Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NicoSanhueza en 1 Mayo 2018, 17:52 pm



Título: ayuda! error: lvalve required as left operand of assignmet
Publicado por: NicoSanhueza en 1 Mayo 2018, 17:52 pm
Buenas tardes a todos, espero que esten muy bien.

El problema que debo resolver es :"SUMA 1-2+3-4+5-6....n"
Mi observacion: pares son negativos e impares positivos.

El unico error que se detecto es :"14: lvalve required as left operand of assignmet"

lo que realizé fue lo siguiente:

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6.    int numero,cont,suma=0,resta=0,total;
  7.  
  8.    printf("Ingrese la cantidad de numeros consecutivos a sumar:");
  9.    scanf("%d",&numero);   // se lee el dato
  10.  
  11.    cont=1;
  12.    while(cont<=numero)
  13.    {
  14.        (cont%2==0)? resta=resta-cont:suma=suma+cont;   // linea14
  15.        (cont%2==0)? printf("%d",resta):printf("%d",suma);                                                        
  16.        cont++;    
  17.    }
  18.  
  19.    total=resta+suma;
  20.    printf("El resultado es:%d",total);
  21.  
  22.    return 0;
  23. }
  24.  
¿Que significa ese error?
¿Esta mal planteado el programa?
gracias de antemano :)


· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: ayuda! error: lvalve required as left operand of assignmet
Publicado por: engel lex en 1 Mayo 2018, 18:08 pm
Código
  1. (cont%2==0)? resta=resta-cont:suma=suma+cont;

estás aplicando el ternario de manera incorrecta, estás usandolo como si fuera un if y no lo es del todo

el error se deriva de una operación de asignación a la misma variable en un ternario, para tu caso un ternario no tiene sentido, usa if en la linea 14, en la 15 no afecta pero no es un uso apropiado del ternario... el no es un if es un operador

por cierto, este problema se puede resolver con una formula matemática sin necesidad de ciclos