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:
- 10 7
- 10 7 4
- 10 7 4 2
- 10 7 4 2 1
- 2 1
- 1
- 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.