需要从 # 开始写 spiral 和
Need to write spiral from # and
我必须从 #
和 .
创建螺旋。它必须根据变量 n
进行扩展。问题是我无论如何都无法创建它。到目前为止,我的程序在测试中遇到了分段错误。在描述中图像是 n = 7
.
的输出
有人可以帮忙吗?
char a[100][100];
int n = 7;
int r,s;
void write(char *a[], int n)
{
int i, j;
for (i=0;i<n;i++)
{
for (j=0; j<n;j++)
a[i][j]=".";
}
}
void right (int length)
{
int k=0;
for (k=0;k<length;k++)
a[r][s+k] = '#';
}
void down(int length)
{
int k=0;
for (k=0;k<length;k++)
a[r][s+k] = '#';
}
void up(int length)
{
int k=0;
for (k=0;k<length;k++)
a[r][s+k] = '#';
}
void left(int length)
{
int k=0;
for (k=0;k<length;k++)
a[r][s+k] = '#';
}
回答您关于分段错误的问题:
正如我在评论中提到的,您需要将 "."
从字符串更改为字符 '.'
。
接下来是在您的 write 函数中,参数需要错误类型的数组。您指定 char *a[]
而您需要 char a[100][100]
。这对我有用。
关于预期的行为,这取决于您将螺旋定义为什么。
只要您访问数组,您的程序就会在 write() 函数中出现分段错误。这样就需要在 write() 函数中复制整个数组。请在下方使用。
写(*a[100][100],int n)
我必须从 #
和 .
创建螺旋。它必须根据变量 n
进行扩展。问题是我无论如何都无法创建它。到目前为止,我的程序在测试中遇到了分段错误。在描述中图像是 n = 7
.
有人可以帮忙吗?
char a[100][100];
int n = 7;
int r,s;
void write(char *a[], int n)
{
int i, j;
for (i=0;i<n;i++)
{
for (j=0; j<n;j++)
a[i][j]=".";
}
}
void right (int length)
{
int k=0;
for (k=0;k<length;k++)
a[r][s+k] = '#';
}
void down(int length)
{
int k=0;
for (k=0;k<length;k++)
a[r][s+k] = '#';
}
void up(int length)
{
int k=0;
for (k=0;k<length;k++)
a[r][s+k] = '#';
}
void left(int length)
{
int k=0;
for (k=0;k<length;k++)
a[r][s+k] = '#';
}
回答您关于分段错误的问题:
正如我在评论中提到的,您需要将 "."
从字符串更改为字符 '.'
。
接下来是在您的 write 函数中,参数需要错误类型的数组。您指定 char *a[]
而您需要 char a[100][100]
。这对我有用。
关于预期的行为,这取决于您将螺旋定义为什么。
只要您访问数组,您的程序就会在 write() 函数中出现分段错误。这样就需要在 write() 函数中复制整个数组。请在下方使用。 写(*a[100][100],int n)