2010 – 2

Si consideri il seguente frammento di programma:

main() 
{
   int n, i, j,
       a=0, 
       b=0;
   printf("Inserisci un numero intero: ");
   scanf("%d", &n);
   if(n < 0)
      n=-n;
   i=j=n;
   while(i > 0) 
   {
      a+=1; 
      i--;
   }
   do 
   {
      b+=1; 
      j--;
   }
   while(j > 0);
   printf("a=%d b=%d\n", a, b);
}

Cosa viene visualizzato a video dall’esecuzione di main() se alla domanda Inserisci un numero intero: viene inserito da tastiera il valore 100?

Cosa viene visualizzato a video dall’esecuzione di main() se alla domanda Inserisci un numero intero: viene inserito da tastiera il valore 0?


Soluzione:

  • a=100 b=100
  • a=0 b=1

Per a, b > 0 i due cicli si comportano allo stesso modo.

Per a, b = 0 il ciclo while() non esegue alcun passo mentre il ciclo do while() esegue comunque il primo passo.