修改C++二维数组 去掉靠边的元素 生成一个新的N-2阶矩阵 然后求主对角线下各元素之和

2024-11-22 17:18:13
推荐回答(1个)
回答1:

//你这题和你的代码 八竿子达不到边啊,你想表达什么意思啊。。。我把边上的数字全去掉了
#include
using namespace std;
void main()
{
int n=0,sum=0;
while(1)
{
cout<<"输入一个正整数:"< cin>>n;
if (n>0)
break;
}
int **elements=NULL;//二维指针
elements=new int * [n];
if(NULL==elements)
exit(1);
int i,j;
for (i = 0; i < n; i++)
{
elements[i] = new int [n];
if (NULL==elements[i])
exit(1);
}
for (i = 0; i < n; i++)
for (j = 0; j { scanf("%d",&elements[i][j]);
if(i>0 && i0 && j elements[i-1][j-1]=elements[i][j];
}
for (i = 0; i < n-2; i++)
{
for (j = 0; j printf("%d\t", elements[i][j]);
sum+=elements[i][i];
printf("\n");
}
printf("trace is %d\n",sum);
for (i = 0; i < n; i++)
free(elements[i]);
free(elements);
}