Nella funzione massimo_righe non ricopi tutto il resto della matrice ... basta inserire la linea che assegna dopo la for j come di seguito ma non so se ti va bene perché non ho capito se il massimo va scambiato con il valore presente nella diagonale o no

for (j=0; j<maxc; j++)
{
matmax[i][j]=mat[i][j];