2015 – 4

A una seconda liceo scientifico viene chiesto di scrivere un programma che stampi 50 numeri interi tra 1 e 100, generati casualmente, e ne trovi il minimo.

Patrick scrive questo programma:

#include 
#include 
#include 

int main() 
{
   int min,num;
   int i=1;
   min=1;
   srand(time(NULL));
   while(i <= 50) 
   {
      num=(rand()%100)+1;
      printf(" > %d: %d\n", i, num);
      if(num < min)
         min=num;
      i=i+1;
   }
   printf("Minimo: %d\n", min);
   return 0;
}

Patrick ha però fatto un errore clamoroso.

Quale è il minimo valore da assegnare inizialmente alla variabile min perché il programma funzioni correttamente?


Soluzione: 100.


Se inizialmente min=1, il risultato finale sarà sempre 1.

Qualsiasi valore superiore a quelli nell'intervallo [1..100] (101, 102, ...) correggerebbe l'errore.

La richiesta specifica però il minimo valore perché il programma funzioni, quindi è 100.