Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 需要从#和_C_Spiral - Fatal编程技术网

C 需要从#和

C 需要从#和,c,spiral,C,Spiral,我必须从#和创建螺旋。它必须根据变量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 righ

我必须从
#
创建螺旋。它必须根据变量
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] = '#';
}

chara[100][100];
int n=7;
int r,s;
无效写入(字符*a[],整数n)
{
int i,j;

为了(i=0;i回答您关于分段错误的问题:

正如我在评论中提到的,您需要将
从字符串更改为类似于so
”的字符。

接下来是在write函数中,参数要求的数组类型错误。您指定的是
char*a[]
,而您需要的是
char a[100][100]
。这对我很有效


关于预期的行为,由您自己决定如何定义螺旋。

每当您访问数组时,您的程序将在write()函数中出现分段错误。因此,您需要在write()函数中复制整个数组。请使用下面的命令。
write(*a[100][100],int n)

您在这里为字符数组分配字符串a[i][j]=”;您需要像这样分配字符a[i][j]=”;忽略scanf()的返回值“你自己的风险。不要考虑,为什么<代码> UP/代码>,<代码>下,<代码>左,<代码>右< /代码>功能相同。检查你的任务。这个任务通常是由教师创建的,限制不使用和排列,而是只需一行就直接打印行。全局变量被初始化为0。没有帮助,仍然得到分割fault@interjay我的错,我忽略了that@Dudo更新后的回答很好,谢谢。但是不打印任何内容。如果我想打印结果,我应该使用2个周期来打印整个数组,对吗?在写函数签名/调用中尝试执行的操作没有意义