输出类似于9宫的的东西如果有1到9 9个数字 组成 3*3的 方阵 要求每个横行每个竖行及2条对角线的 和 都想等里  例如2  9  4
7  5  3
6  1  8现要求输入数字 n  由1到n个数字 组成 n*n  方阵  使 方阵的  横竖对角线的和相等

解决方案 »

  1.   

    #include <iostream>
    using namespace std;
    #include <iomanip>int main ()
    {
            int n;
            while(1==1)
            {
                    cout<<"请输入一个奇数"<<endl;
                    cin>>n;
                    if(n%2==0)
                            cout<<"您输入的是偶数"<<endl;
                    else
                            break;
            }
            int N=n*n;
            int* p= new int[n];
            p[0]=(N+1>>1)-(n>>1)*n;
            p[1]=p[0]*n+1;
            for (int i = 2; i < n; i++)
            {
                    p[i]=p[i-2]+n+1;
            }
            for (int i = n; i < N; i++)
            {
                    if(i%n==0)
                    {
                            p[i]=p[i-1]+n;
                            p[i]=p[i]>N?p[i]-N:p[i];
                            if (p[i]>N)
                            {
                                    p[i]-=N;
                            }
                    }
                    else
                    {
                            p[i]=p[i-n-1]+n;
                            if (p[i]>N)
                            {
                                    int m=p[i];
                                    p[i]=m-N;
                            }
                    }
            }
            for (int i = 0; i < N; i++)
            {
                    cout.width(4);
                    cout.fill(' ');
                    cout<<setiosflags(ios::right)<<p[i]<<resetiosflags(ios::right);
                    if ((i+1)%n==0)
                    {
                            cout<<endl;
                    }
            }
    }这个是我当初自己分析用 c++ 写的一个玩意  大家自己写写发出来晒晒啊
      

  2.   

    http://baike.baidu.com/view/325330.htm学习了