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 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题