2002 – 2

Cosa stampa il seguente programma ?

#include 

typedef int vett[10];

vett x, y;
int  i, j;
int  b;

void readV(vett x)
{
   int i;
   for(i=0; i < 10; i++)
      scanf("%d", &x[i]);
}

int main()
{
   readV(x);
   readV(y);
   for(i=0; i < 10; i++)
   {
      j=b=0;
      while((!b) && (j < 10))
      {
         if(x[i] == y[j])
            b=1;
         j++;
      }
      if(b)
      {
         b=0;
         for(j=0; j < i; j++)
            if(x[j] == x[i])
               b=1;
         if(!b)
            printf("%d\n", x[i]);
      }
   }
   return 0;
}

Il programma legge due sequenze di 10 interi e le mette in due vettori x e y.

Cosa stampa il programma?

  1. stampa gli interi contenuti in x ma non in y;
  2. stampa gli interi contenuti in entrambi i vettori; ogni numero viene stampato una sola volta;
  3. stampa gli interi contenuti in entrambi i vettori; ogni numero può essere stampato più volte;
  4. stampa gli interi contenuti una sola volta in entrambi i vettori;
  5. stampa gli interi contenuti una sola volta in x che compaiano almeno una volta in y.

Soluzione: b. (stampa gli interi contenuti in entrambi i vettori; ogni numero viene stampato una sola volta)


...