nella riga dove c'è scritto fine[k]=..... non funziona a lui non sta bene quella specie di inizializzazione,
per forza si arrabbia non hai allocato nessuno spazio in quell'array e stai tentantdo di accedersi (un po' difficile inizializzare qualcosa che non esiste ;-) )

Esempio in questo pezzo di codice ci sono due cicli, esiste un modo per uscire da quello interno prima perchè già una condizione non è andata a buon fine?Il break non mi sembra che funzioni bene.
basta scrivere le condizioni utilizzando per esempio qualche varabile booleana per ricordasi al ciclo "superiore" il valore di tale condizione