c - C 中的数字螺旋,代码不起作用

标签 c arrays multidimensional-array

我想在 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/

相关文章:

php - 需要帮助分组 php 数组

php - 将多维子数组值与其他子数组值相加

php - Mysql 上的多维数组重复数据存储

javascript - 如何在不创建新条目的情况下将值插入子数组

c - gets() 内部开关被忽略

c - 使用 fgets() 的段错误

c - 移位操作的奇怪结果

java - Android 代码帮助从列表末尾删除

c - 内联汇编 : clarification of constraint modifiers

c - 将二进制值存储在 C 中的数组中