1 #include2 #include 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)//移出格就到第一列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
特别注意:memset不能初始化new或者malloc出来的内存,因为sizeof(int *)是4,可以初始化为-1或者0(0的二进制补码全为0,-1的二进制补码全为1),若类中有虚函数也不可。
今个运行了下,貌似有问题,不想改了