zoukankan      html  css  js  c++  java
  • 魔方阵

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int i,j,k,T;
     8     cin>>T;
     9     while(T--)
    10     {
    11         int n = 0;
    12         cin>>n;
    13         int *a = new int[n*n];
    14        // memset(a,0,sizeof(a));用这个初始化会错误 
    15         for(i=0;i<n;i++)
    16           a[i] = 0;
    17           //cout<<a[i]<<endl;
    18         int x,y;//记录当前填写的位置
    19         x = (n -1)/2,y = 0;
    20         a[y*n + x] = 1;//在第一行中间填上1。
    21         for(i=2; i<=n*n; i++)//需要填入的数
    22         {
    23             x++;//当前格移到右一列
    24             if(x>=n)//移出格就到第一列
    25                 x = 0;
    26             y--;//当前格到上一行
    27             if(y<0)
    28                 y = n - 1;
    29             if(a[y*n + x]!=0)//如果当前格被占用就到下一行
    30                 y++;
    31             a[y*n + x] = i;//当前格填入值
    32         }
    33         //输出
    34         for(i=0; i<n; i++)
    35         {
    36             for(j=0; j<n; j++)
    37             {
    38                 cout<<a[i*n + j]<<" ";
    39             }
    40             cout<<endl;
    41         }
    42         delete []a;
    43     }
    44     return 0;
    45 }
    46             
    47              

    特别注意:memset不能初始化new或者malloc出来的内存,因为sizeof(int *)是4,可以初始化为-1或者0(0的二进制补码全为0,-1的二进制补码全为1),若类中有虚函数也不可。

    今个运行了下,貌似有问题,不想改了

  • 相关阅读:
    linux安装jenkins
    linux安装python3.8
    python类继承多态
    python字典排序
    第一篇
    第十一周编程总结
    2019春第十周作业
    2019年寒假作业1
    2019年寒假作业3
    学期总结
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2809326.html
Copyright © 2011-2022 走看看