porque primero capturas las dimensiones de la matriz (x,y) las variables fila 5 y columna 5 no se estan utilizando al menos que hagas n a 5
mira este codigo
#include <iostream>
using namespace std;
int main()
{
int matriz [30][30];
int valor;
int fil;
int col;
int matriz2 [30][30];
double prom;
int suma=0;
int sumatotal=0;
cout <<"digite el numero de filas :";
cin>>fil;
cout <<endl;
cout <<"ingrese numero de columnas :";
cin>>col;
cout <<endl;
for(int i=0;i<fil;i++) // Recorre las filas de la matriz
{
for(int j=0; j<col;j++) // Recorre las columnas de la matriz
{
cout<<"Ingrese el valor de la matriz en la posicion ["<<i<<","<<j<<"]"<<endl;
cin>>valor;
matriz[i][j] = valor;
}
}
// Imprimiendo el arreglo en formato matricial
cout <<endl;
for(int i=0;i<fil;i++)
{
cout<<"|";
for(int j=0; j<col;j++)
{
cout<<"\t"<<matriz[i][j]<<"\t";
}
cout<<"|"<<endl;
}
//suma diagonal
for(int i=0;i<fil;i++)
{
for(int j=0; j<col;j++)
{
matriz2[i][j]=matriz[i][j];
sumatotal=sumatotal+matriz[i][j];
prom=sumatotal/(fil*col);
if(i==j)continue;
suma=suma+matriz[i][j];
}
}
//copiar fila 2 en nuevo arreglo mostrar valores de una fila cualquiera
cout <<endl;
cout<<"nuevo arreglo:\n";
for(int z=0; z<col;z++)
{
cout<<"\t"<<matriz2[2][z]<<"\t";
}
cout<<"|"<<endl;
cout <<"sumatoria de los elementos que no pertenece a la diagonal: ";
cout<<suma<<endl;
cout <<"promedio de los elementos del arreglo: ";
cout<<prom<<endl;
return 0;
}