#include <iostream>
using namespace std;
#define M 100
int a[M][M];
void pt( int n )
{
for ( int i = 0; i < n; i++ )
{
for ( int j = 0; j < n; j++ )
{
cout << a[i][j] << " ";
//printf("%2d ",a[i][j]);
}
cout << endl;
}
}
/* 圆圈循环 */
int main()
{
int n = 5;
cin>>n;
int sn = n * n;
a[n/2][n/2]=1;
for ( int i = 1; i <n/2+1; i++ )
{
for ( int j = n - i; j >= i-1; j-- )
{
a[n - i][j] = sn--;
}
for ( int j = n - i; j > i; j-- )
{
a[j - 1][i-1] = sn--;
}
for ( int j = i-1; j <= n - i; j++ )
{
a[i-1][j] = sn--;
}
for ( int j = i; j <n - i; j++ )
{
a[j][n-i] = sn--;
}
}
pt(n);
int sum=0;
for(int i=0;i<n;i++)
{
sum+=a[i][n-1-i];
sum+=a[i][i];
}
cout<<sum-1<<endl;
return(0);
}
由于对数据的不熟练,已经忘记了大多数的步骤了,需要学习的还有很多。
可以在Excel中方便的进行操作。展示自己的操作过程。
四个边对应起来看,可以更加方便的进行,对比。for循环难点在于变量的变化过程的把控,通过具体的对比会方便很多的。