這是一個神奇的正方形問題,幻方n的大小應該作爲命令行參數輸入。 n必須是一個奇數。 The expected output should be like this.我的問題是,當我嘗試執行代碼, it generates a bunch of 0s.生成一個神奇的正方形
我是一個C初學者,我希望有人能幫助我與我的問題。 非常感謝!我感謝您的幫助!
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n = atoi(argv[1]);
int magic[n+1][n+1];
if(argc == 2)
{
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
magic[i][j] = 0;
}
}
int i =0 ;//row
int j= n/2; //column
for (int k = 1; k <= n*n; k++)
{
magic[j][i] = k;
if(magic[j][i] == 0) //if the spot is empty
{
if (j == 0 && i == 0)
{
j--;//go up one level
i--; //go left
}
else
{
if(j == 0) //if it's on the first row
j = n - 1;
else
j--;
if (i == 0) //if it's on the left column
i = n - 1;
else
i--;
}
}
else //if the spot is not empty
{
j = j + 2;
i++;
}
}
}
for(int x=0; x<n; x++)
{
for(int y=0; y<n; y++)
printf("%3d", magic[x][y]);
printf("\n");
}
return 0;
}
決定使用哪種語言。你不能同時使用C和C++,它們是不同的語言。另外 - 你的調試器告訴你什麼? – Fureeish
在給'n'分配一個新的值之後,把'magic [n + 1] [n + 1]'聲明爲'',因爲當'n'爲0時創建數組 – Rogus
程序應該做什麼?只是通過目測,我發現你初始化了矩陣的維數1 1 – asddf