Assumendo che tu interrompa il ciclo for con l'istruzione 
break, l'ultima iterazione nel corso della quale il valore di 
C era positivo (o nullo) sarà data da 
iterazione-1 (dove 
iterazione è l'indice del ciclo for)
N=100;
C=13;
for iterazione=1:N
   n_rand=randi(3,1,1);
   C=C-n_rand
   if(C < 0)
      disp(sprintf('Il valore di C è diventato negativo\nalla %d iterazione',iterazione))
      disp(sprintf('quindi l''ultima iterazione valida è la numero %d',iterazione-1))
      break
   end
end
if(iterazione == N)
   disp('Il numero C non è mai diventato negativo')
end
Una soluzione alternativa può essere utilizzare un contatore che viene incrementato solo fino a quando il valore di 
C è positivo (o nullo).
In questo caso il valore della variabile 
contatore, al termine del loop, sarà uguale a 
iterazione -1
N=100;
C=13
contatore=0;
for iterazione=1:N
   n_rand=randi(3,1,1);
   C=C-n_rand
   if(C < 0)
      disp(sprintf('Il valore di C è diventato negativo\nalla %d iterazione',contatore))
      break
   end
   contatore=contatore+1
end
if(iterazione == N)
   disp('Il numero C non è mai diventato negativo')
end
In entrambe le implementazioni è opportuno inserire un controllo per verificare se il ciclo for si sia concluso senza che la variabile 
C sia diventata negativa.