gpt4 book ai didi

无法在 c 中声明具有变量值的数组

转载 作者:行者123 更新时间:2023-11-30 14:45:02 24 4
gpt4 key购买 nike

我正在尝试创建一个程序,用 C 语言根据给定的 n 值生成幻方。这是代码

#include<stdio.h> 
#include<string.h>

// A function to generate odd sized magic squares
void generateSquare(int n)
{
int magicSquare[n][n];

// set all slots as 0
memset(magicSquare, 0, sizeof(magicSquare));

// Initialize position for 1
int i = n/2;
int j = n-1;

// One by one put all values in magic square
for (int num=1; num <= n*n; )
{
if (i==-1 && j==n) //3rd condition
{
j = n-2;
i = 0;
}
else
{
// 1st condition helper if next number
// goes to out of square's right side
if (j == n)
j = 0;

// 1st condition helper if next number
// is goes to out of square's upper side
if (i < 0)
i=n-1;
}
if (magicSquare[i][j]) //2nd condition
{
j -= 2;
i++;
continue;
}
else
magicSquare[i][j] = num++; //set number

j++; i--; //1st condition
}

// Print magic square
printf("The Magic Square for n=%d:\nSum of "
"each row or column %d:\n\n", n, n*(n*n+1)/2);
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
printf("%3d ", magicSquare[i][j]);
printf("\n");
}
}

// Driver program to test above function
int main()
{
int n = 7; // Works only when n is odd
generateSquare (n);
return 0;
}

在 Turbo C 编译器中编译程序时出现以下错误

line 7 constant expression required

line 13 declaration not allowed here

line 14 declaration not allowed here

undefined symbol num

如果我将它作为 C++ 文件运行,该程序运行良好,但它作为 C 程序显示错误

最佳答案

您可能正在使用 TurboC。

TurboC 使用过时的 C 语言编译器。它支持Borland编译器。当 Windows XP 流行时,它是更可取的。现在它已经过时了。

改用最新的 gcc 或 g++。

您可以切换到 Ubuntu 或 Mac

或者可以尝试 Windows 版的 CodeBlocks。

关于无法在 c 中声明具有变量值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53285234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com