I need to get find the maximum possible sum of a 2D array, but can only use one number per row/column (similar to the Hungarian Method). I've been working on the code for quite some time, but I haven't gotten far. I'm fairly new to programming, so the explanations online are far above my knowledge of the C language.

I don't really have much, but here it is:

I know, it's a mess. The program adds the diagonal numbers together ([0][0]+[1][1]+[2][2]+...) but the swap is giving me trouble. I only learned how to print permutations of a word, not of sums of 2D arrays. any help?Code:int permute(int mmin[10][10], int size){ int q, total=0, sum=0; for(q=size;q>=0;q--){ mmin=swap(mmin, size, q); sum=mmin[q][q]; sum+=permute(mmin, q-1); mmin=swap(mmin, q, size); printf("\n"); } return sum; } int swap(int mmin[10][10], int j, int k){ int i, temp; for(i=0;i<=k;i++){ printf("swapping [%d][%d]=%d with [%d][%d]=%d\n", i, j, mmin[i][j], i, k, mmin[i][k]); temp=mmin[i][j]; mmin[i][j]=mmin[i][k]; mmin[i][k]=temp; } return mmin; }

Thanks in advance!

I also know that i need an if statement to stop all of the swaps, but I'm not sure where yet...