import java.util.Arrays; public class Esercizio5 { public static int[] fillZero2(int[] a) { // creo un nuovo arrat lungo quanto a int[] risultato = new int[a.length]; for (int i = 0; i < a.length; i++) { /* * Se l'i-esimo elemento di a è 0, in risultato invece di copiare il corrispondente * elemento di a metto il precedente elemento di risultato. Notare che deve anche essere * i != 0, perché un eventuale zero in prima posizione va copiato normalmente. Se invece * l'i-esimo elemento non è 0, metto in risultato il corrispondente elemento di a. */ if (a[i] == 0 && i != 0) risultato[i] = risultato[i - 1]; else risultato[i] = a[i]; } return risultato; } // Il main lo scrivo per verificare il corretto funzionamento del metodo fillZero2, ma non è // richiesto dal testo dell'esercizio, non è valutato, e non è neanche necessario. public static void main(String[] args) { int[] a = {0, 1, 4, 0, 0, 7, 0, 3}; int[] b = fillZero2(a); System.out.println(Arrays.toString(b)); } }