改了一下,不知道和你想的一样不
#include <iostream>
using namespace std;
int main()
{
int i,j,n,sum=0;
cout<<"请输入行列数:";
cin>>n;
int **a;
a = new int* [n];
//a[0] = new int[n * n];
for(i=0; i<n; i++)
{
a[i] = new int[n];
//a[i] = a[i-1] + n;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++){
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
//cout<<'\n';
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<'\t';
}
cout<<endl;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if (i == j) //注意这里
sum += a[i][j];
}
}
cout<<"这个"<<n<<"行"<<n<<"列的矩阵的对角线元素之和为: "<<sum<<endl;
// delete[] a[0];
for(i=0; i<n; i++)
{
delete[] a[i];
}
delete[] a;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,n,sum=0;
cout<<"请输入行列数:";
cin>>n;
int **a;
a = new int* [n];
//a[0] = new int[n * n];
for(i=0; i<n; i++)
{
a[i] = new int[n];
//a[i] = a[i-1] + n;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++){
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
//cout<<'\n';
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<'\t';
}
cout<<endl;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if (i == j) //注意这里
sum += a[i][j];
}
}
cout<<"这个"<<n<<"行"<<n<<"列的矩阵的对角线元素之和为: "<<sum<<endl;
// delete[] a[0];
for(i=0; i<n; i++)
{
delete[] a[i];
}
delete[] a;
return 0;
}