- Codice:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 5, b = 3, c = 0;
if (!b--&&++a || !c-- % 2 == 0) c -= 3 * a;
else if (!(a % 2 == 0) || ((b++) && (a--))) a--; b++;
switch (++b - c) {
case 0: printf("%d - ", a);
case 1: printf("%d - ", b); break;
case 2: printf("%d - ", c);
default: printf("%d", a);
}
}
Devo trovare il valore stampato da questo programma. Ora io sto provando a risolverlo passo passo con il debug su Visual Studio. Analizzando i valori al primo if mi viene a = 5, b= 2, c=-1. Con b mi trovo, ma perchè a= 5 e c=-1 ? Non dovrebbe essere a = 6(visto che viene incrementato) e c=-16 ?