sinat_24828545 2014-12-26 11:09 采纳率: 40%
浏览 2153
已采纳

求解 用 C++ 解 怎么解啊

二、编程题(需给出源代码和程序运行截图)
1. 设计程序实现n*n魔方矩阵(n为奇数)的输出。
n*n魔方矩阵就是指每一行、每一列以及两个对角线上的n个自然数的和都相等的方阵。如3*3魔方矩阵为:
8 1 6
3 5 7
4 9 2
矩阵内填写的数值为1~n*n的自然数。使用已学过的数组相关知识编写程序实现任意n*n魔方矩阵(n为奇数)的构造并显示出最终矩阵的结果。
输入输出要求:
(1) n的值由用户指定
(2) 输出时按照矩阵的形式输出结果。
 输入输出示例
Please input an odd positive integer:3
Find 3*3 magic matrix
――――――――
8 1 6
3 5 7
4 9 2
――――――――

  1. 设计Set(集合)类,Set可以包含零个或多个无序的非重复元素,元素都是int型。公共接口除包含构造函数、拷贝构造函数、析构函数外,还包含以下成员函数:创建一个Set,增加一个新元素到Set,从Set中删除一个元素,显示Set中元素,计算Set中元素个数等 。为Set类重载+(并集)、-(差集)、*(交集)。完成后,编写相应程序测试你的设计
  • 写回答

1条回答 默认 最新

  • xiao小人儿 2014-12-26 13:58
    关注

    #include
    #include
    #include

    #define MAXSIZE 99

    using namespace std;

    int main()
    {
    int n = 0, m = 1;
    cout<<"\nPlease input an odd positive integer:";
    cin>>n;

    int zero[MAXSIZE*99] = {0};
    
    vector<int> data(zero, zero + n * n * sizeof(int));
    
    int i = 0, j = ( n - 1 ) / 2;
        data[j] = 1;
    while( m < n * n )
    {
        i = i  + n - 1;
        j = j  + n + 1;
    
        if (data[ ( i % n ) * n + ( j % n ) ] == 0 )
        {
            m++;
            data[ ( i % n ) * n + ( j % n ) ] = m;
    
        }else{
            i = i + 3;
            j = j - 2;
        }
    }
    
    cout<<endl<<"Find "<<n<<" * "<<n<<" magic matrix"<<endl;
    for (i = 0; i < n ; i++)
    {
        cout<<"_____";
    }
        cout<<endl<<endl;
    for( i = 0; i < n; i++)
    {
        for ( j = 0; j < n; j++)
        {
            printf("%4d ",data[ n * i + j]);
        }
        cout<<endl<<endl;
    }
    
    for (i = 0; i < n ; i++)
    {
        cout<<"_____";
    }
    cout<<endl<<endl;
    

    }

    图片说明
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行