2001 – 4 bis

Dato il seguente frammento di programma:

int a[5]={10, 7, 4, 2, 1};
int b[5]={3, 2, 5, 6, 4};
int i, j, k;
for(i=0; i < 5; i++)
{
    k=1;
    for(j=4; j >= 0; j--)
        if(a[i] <= b[j])
            k=0;
    if(k)
        printf("%d ", a[i]);
}

Indicare i valori stampati in uscita:

  1. 10 7
  2. 10 7 4
  3. 10 7 4 2
  4. 10 7 4 2 1
  5. 2 1
  6. 1
  7. nessuna delle risposte precedenti è corretta

Soluzione: a (10 7).


i j test k out
0 4 10 < 4 1
3 10 < 6 1
2 10 < 5 1
1 10 < 2 1
0 10 < 3 1 10
1 4 7 < 4 1 10
3 7 < 6 1 10
2 7 < 5 1 10
1 7 < 2 1 10
0 7 < 3 1 10 7
2 4 4 < 4 0 10 7
... ... ... ... ...
4 0 1 < 3 0 10 7

Per ogni elemento di a controlla se tutti gli elementi di b sono più piccoli ed eventualmente lo visualizza.