c/c++输出一个方阵,有若下顺序

来源:百度知道 编辑:UC知道 时间:2024/05/15 10:31:02
//输出n*n个数,要求格式这样:

// 1 2 3 4 5
// 16 17 18 19 6
// 15 24 25 20 7
// 14 23 22 21 8
// 13 12 11 10 9

#include < iostream >
#include < iomanip >
using namespace std;
class cubic //定义一个类
{
public:
cubic(int x) //构造函数初始化方阵的边长
{
n=x;
}
void fun();
void print();
private:
int i,j,k,m,n,a[100][100]; // 用一个数组来存储这些数
};
void cubic::fun()
{
m=0;
for(k=0;k<n;n--,k++) //用来总控制,每执行一次方阵的所有外圈的都被初始化
{
for(i=k,j=k;j<n;j++,m++) //用来初始化最外圈的最上边的横边
{
a[i][j]=m;
}
for(;i<n;i++,m++) // 用来初始化最右边的竖边
{
a[i][j]=m;
}
for(;j>k;j--,m++) // 用来初始化最下边的(从右至左)
{
a[i][j]=m;
}
for(;i>k;i--,m++) // 用来初始化最左边的(从下至上)
{
a[i][j]=m;
}
}
}
void cubic::print() // 输出数组
{
f

#include < iostream >
#include < iomanip >
using namespace std;
class cubic //定义一个类
{
public:
cubic(int x) //构造函数初始化方阵的边长
{
n=x;
}
void fun();
void print();
private:
int i,j,k,m,n,a[100][100]; // 用一个数组来存储这些数
};
void cubic::fun()
{
m=0;
for(k=0;k<n;n--,k++) //用来总控制,每执行一次方阵的所有外圈的都被初始化
{
for(i=k,j=k;j<n;j++,m++) //用来初始化最外圈的最上边的横边
{
a[i][j]=m;
}
for(;i<n;i++,m++) // 用来初始化最右边的竖边
{
a[i][j]=m;
}
for(;j>k;j--,m++) // 用来初始化最下边的(从右至左)
{
a[i][j]=m;
}
for(;i>k;i--,m++) // 用来初始化最左边的(从下至上)
{
a[i][j]=m;
}
}
}
void cubic::print() // 输出数组
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout << setw(3) << a[i][j] ;
cout << endl;
}
}