Ragazzi sto provando a scrivere un programma che in una matrice mi scambi la riga con somma massima con quella di somma minima...vi posto il codice(ve lo posto così xkè nn conosco i tag appositi sono un po inesperto)


//scambia la riga con somma max con quella con somma min

#include<iostream>
using namespace std;
void leggi_mat(int m[100][100], int &c, int&r);
void stampa_mat(int m[100][100], int &c, int&r);
int sommamax(int m[][100],int r, int c);
int sommamin(int m[][100],int r, int c);
void scambia_righe(int m[][100], int&r,int&c, int x, int k);
int main()
{int m[100][100];
int r,c,x,k;
cin>>r>>c;
leggi_mat(m,r,c);
x=sommamax(m,r,c);
k=sommamin(m,r,c);
scambia_righe(m,r,c,x,k);


system("PAUSE");
}


void leggi_mat(int m[100][100], int &c, int&r)
{int i,j;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
{cout<<"m["<<i<<"]["<<j<<"]";
cin>>m[i][j];}}

int sommamax(int m[][100],int r, int c)
{int somma=0,temp,j,i,k;
for(i=0;i<r;i++)
{temp=0;
for(j=0;j<c;j++)
temp+=m[i][j];
if(somma<temp)
{somma=temp;
k=i;}
}
return k;

}

int sommamin(int m[][100],int r, int c)
{int somma=0,temp,j,i,k;
for(i=0;i<r;i++)
{temp=0;
for(j=0;j<c;j++)
{temp+=m[i][j];
somma=temp;
if(temp<somma)
{ somma=temp;
k=i;
}
}
return k;}


}
void scambia_righe(int m[][100], int&r,int&c, int x, int k)//scambia riga x con riga k
{int j,y,i;
int temp[100];
i=0;
for(j=0;j<c;j++)
{temp[i]=m[x][j]; //temp[i]è un vettore d'appoggio x lo scambio
m[x][j]=m[k][j];
m[k][j]=temp[i];
i++;
}
stampa_mat(m,r,c); }

void stampa_mat(int m[100][100], int &c, int&r)
{int i,j;
for(i=0;i<r;i++)
{for(j=0;j<c;j++)
cout<<m[i][j]<<"\t";
cout<<endl;
}
}


il programma viene compilato ma non mi funziona...help!