1个回答
展开全部
#include <iostream>
using namespace std;
int fun(int **p, int n);
int main()
{
int s, n;
cout << "请输入N:";
cin >> n;
int **a = new int*[n];
for(int i=0; i<n; i++)
{
a[i] = new int[n];
}
cout << "请输入数组a中的元素:" << endl;
for(i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
cin >> a[i][j];
}
}
s = fun(a, n);
cout << "s=" << s << endl;
for(i=0; i<n; i++)
{
delete []a[i];
}
delete []a;
return 0;
}
//思路:先求整个二位数组元素的平方和,再减去除周边元素外的子数组元素的平方和
int fun(int **p, int n)
{
int s = 0;
int i, j;
//求整个二位数组元素的平方和
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
s += ((*(*(p+i)+j)) * (*(*(p+i)+j)));
}
}
//减去除周边元素外的子数组元素的平方和
for(i=1; i<n-1; i++)
{
for(j=1; j<n-1; j++)
{
s -= ((*(*(p+i)+j)) * (*(*(p+i)+j)));
}
}
return s;
}
using namespace std;
int fun(int **p, int n);
int main()
{
int s, n;
cout << "请输入N:";
cin >> n;
int **a = new int*[n];
for(int i=0; i<n; i++)
{
a[i] = new int[n];
}
cout << "请输入数组a中的元素:" << endl;
for(i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
cin >> a[i][j];
}
}
s = fun(a, n);
cout << "s=" << s << endl;
for(i=0; i<n; i++)
{
delete []a[i];
}
delete []a;
return 0;
}
//思路:先求整个二位数组元素的平方和,再减去除周边元素外的子数组元素的平方和
int fun(int **p, int n)
{
int s = 0;
int i, j;
//求整个二位数组元素的平方和
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
s += ((*(*(p+i)+j)) * (*(*(p+i)+j)));
}
}
//减去除周边元素外的子数组元素的平方和
for(i=1; i<n-1; i++)
{
for(j=1; j<n-1; j++)
{
s -= ((*(*(p+i)+j)) * (*(*(p+i)+j)));
}
}
return s;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询