我想在 C 中使用二维矩阵制作一个螺旋形,如下所示:
这是我编写的代码。但它一直进入无限循环。我似乎无法获得输出。谁能告诉我我在这个逻辑上犯了什么错误?
我知道这很麻烦,但赋值是获取任何“n”维数组的输出,我们需要使用问题中给出的所有 row_left、row_right 等变量。
#include<stdio.h>
int main(void)
{
int array[6][6]={1},dim,row_right=0,row_left=dim-1,col_up=0,col_down=dim-1;
int i,j,num,cnt;
printf("Enter the dimensions of 2D array:\n");
scanf("%d",&dim);
num=dim*dim;
cnt=0;
while(cnt!=num)
{
for(j=col_up;j<=col_down;j++)
{
if(j=0)
array[row_right][j]=1;
else
array[row_right][j]=array[row_right][j-1]+1;
}
for(i=row_right+1;i<=row_left;i++)
array[i][col_down]=array[i-1][col_down]+1;
for(j=col_down-1;j>=col_up;j--)
array[row_left][j]=array[row_left][j+1]+1;
for(i=row_left-1;i>row_right;i--)
array[i][col_up]=array[i+1][col_up]+1;
row_right++;
row_left--;
col_up++;
col_down--;
cnt++;
}
for(i=0;i<dim;i++)
{
for(j=0;j<dim;j++)
printf("%d\t",array[i][j]);
printf("\n");
}
return 0;
}
最佳答案
if(j=0)
几乎肯定是错误的。这会将 j 设置为零并始终计算为假条件。正确的条件使用 j == 0
。
此外,代码在 scanf
读取之前使用变量 dim
。
关于c - C 中的数字螺旋,代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23083709/