Ecco il codice corretto:
#include<iostream>
#define R 4
#define C 3
using namespace std;
int main()
{
int i,j;
int mat[R][C];
int sr[10];
int sc[10];
//Inseriamo i numero nella matrice
for(i=0; i<R; i++) {
for(j=0; j<C; j++) {
cout << "\nInserisci un numero nella matrice ";
cin >> mat[i][j];
}
}
//Mostriamo la matrice
cout << "\nLa matrice data e' :"<<endl;
for(i=0; i<R; i++) {
for(j=0; j<C; j++) {
cout << mat[i][j] << " ";
}
cout << "\n";
}
//sommiamo per righe(sono il numero 1!!!!!!!!!!!)
for(i=0; i<R; i++) {
sr[i] = 0; // <---- inizializzo la somma a 0
for(j=0; j<C; j++)
sr[i] = sr[i] + mat[i][j];
}
for(i=0; i<R; i++) {
cout<<"\nLa somma della riga "<<i+1<<" e' : "<< sr[i];
}
// somma per colonne
for(int j=0; j<C; j++) {
sc[j] = 0;
for(int i=0; i<R; i++) {
sc[j] = sc[j] + mat[i][j];
}
}
for(i=0; i<C; i++) {
cout<<"\nLa somma della colonna "<<i+1<<" e' : "<< sc[i];
}
cout <<"\n\n";
return 0;
}
Effettivamente bastava scambiare i due cicli for.
P.S. Perché sr e sc hanno dimensione 10 quando sai esattamente quante righe e quante colonne hai nella tua matrice?