[ Foro de C ]
Tengo una duda con este ejercicio del apartado incrementos y decrementos del pdf (página 46)
(2.1.10.2) ¿Cuál sería el resultado de las siguientes operaciones? a=5; b=++a; c=a++; b=b*5; a=a*2;
Tengo esto de código, primero quería probarlo con una operación por eso no está todo el código al completo:
#include<stdio.h>
//¿Cuál sería el resultado de las siguientes operaciones? a=5; b=++a; c=a++; b=b*5; a=a*2;
int main()
{
int a=5;
int b=++a;
int c=a++;
printf("el primero es %d",b=++a);
return 0;
}
cuando lo compilo me sale que b=7, cuando no me tendría que dar eso...
¿qué tengo mal?
Gracias de antemano!
Claro que te tiene que dar eso en tu programa: "a" empieza valiendo 5, y haces dos veces "b = ++a" luego a termina valiendo 7, y lo mismo valdrá "b".
OSTRAS!!! es verdad.... lapsus.
Muchas gracias :)
Pero es que el problema es que ahora al compilarlo me sale que b=8....
y es el mismo código que el de ayer... qué está mal?
y ahora lo vuelvo a compilar y me sale que b=7...
pero qué pasa?
gracias
vale, creo que ya sé lo que estaba mal.... os dejo el código a ver si está bien o tiene algún error.
int main()
{
int a=5;
int b=++a;
printf("La primera operacion es %d\n", b=++a);
int c=a++;
printf("La segunda operacion es %d\n", c=a++);
printf("La tercera operacion es %d\n", b=b*5);
printf("La cuarta operacion es %d", a=a*2);
return 0;
}
Una recomendación : no intentes compactar tanto. Separa las órdenes que hacen cálculos de la ordenes que escriben. Los símbolos de "=" dentro de un "printf" son una fuente de despistes y de errores difíciles de encontrar. Si haces tu código evidente, los errores serán más evidentes que si intentas "abreviar".
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)