Cicli

di il
8 risposte

Cicli

Il programma dovrebbe stampare: 244, -6, -5, -4, -3, -2, -1, a:1
Non capisco il motivo di questa stampa, qualcuno me lo può spiegare?
Grazie!!


#include <stdio.h>


int main(){

int a = 0xfe - 012;
while(a > 9? !!!0: !!(a+1, a-=2, --a)){
printf("%d\n", a);
if(a + 2 > 0x10){
a= -3;
continue;
}
else{
a+= 4;
}
}
!(a+1) || a++;
printf("a: %d\n", a);

}

8 Risposte

  • Re: Cicli

    Usa i tag CODE per il codice. Leggi il regolamento.

    Cosa non capisci in particolare? Hai esaminato passo passo cosa fa il programma?
  • Re: Cicli

    Come faccio a formattare il codice con un tag code?
  • Re: Cicli

    Regolamento, punto 7

    Formattare il codice sorgente
  • Re: Cicli

    In questo modo va bene?
    #include <stdio.h>
    
    
    int main(){
    
      int a = 0xfe - 012;
      while(a > 9? !!!0: !!(a+1, a-=2, --a)){
        printf("%d\n", a);
        if(a + 2 > 0x10){
          a= -3;
          continue;
        }
        else{
        a+= 4;
      }
      }
      !(a+1) || a++;
      printf("a: %d\n", a);
    
    }/code]
  • Re: Cicli

    Alla fine hai aggiunto un /code] in più ... comunque ... rispondi alla mia domanda di prima ...
  • Re: Cicli

    Non capisco per quale condizione si esce dal ciclo while
    E studiandolo passo passo mi sembra che se a>9 è falso quindi vado a fare la seconda condizione quel (a+1) non deve essere preso in considerazione per avere quelle soluzioni
  • Re: Cicli

    laurentibus ha scritto:


    Non capisco per quale condizione si esce dal ciclo while
    Quando con --a il valore di a diventa zero.
    E studiandolo passo passo mi sembra che se a>9 è falso quindi vado a fare la seconda condizione quel (a+1) non deve essere preso in considerazione per avere quelle soluzioni
    Sì, viene completamente ignorato perché il risultato di a-1 non viene memorizzato da nessuna parte.
  • Re: Cicli

    Grazie mille, ora ho capito!
Devi accedere o registrarti per scrivere nel forum
8 risposte