elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda! error: lvalve required as left operand of assignmet
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda! error: lvalve required as left operand of assignmet  (Leído 2,105 veces)
NicoSanhueza

Desconectado Desconectado

Mensajes: 9


Ver Perfil
ayuda! error: lvalve required as left operand of assignmet
« 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
-Engel Lex


« Última modificación: 1 Mayo 2018, 18:04 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ayuda! error: lvalve required as left operand of assignmet
« Respuesta #1 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


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines