我想使用2D矩陣,以使在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;
}
請縮進您的代碼。這可以幫助你自己發現問題。 –
嘗試輸入儘可能小的尺寸,並在調試器中運行以查看發生了什麼。 –
row_right和col_down無法使用dim進行初始化,直到dim被賦予一個值。 – Fred