0
は私のコードで論理エラーを把握manner..cant ..プリント要素
void spiral(int n,int m,int arr[][m])
{
int t=0,r=m-1,b=n-1,l=0,dir=0; /* t->top b->bottom l->left r->right */
int k,j;
// above parameters to manage the matrix.
// exit condition from loop
while (t<=b && l<=r)
{
// print top row
if (dir==0)
{
for (k=l;k<=r;k++)
{
printf("%d ",arr[t][k]);
}
dir=1;
t++;
}
// print right column
else if (dir==1)
{
for (k=t;k<=b;k++)
{
printf("%d ",arr[k][r]);
}
dir=2;
r--;
}
// print bottom row
else if (dir==2)
{
for (k=r;k>=l;k--)
{
printf("%d ",arr[b][k]);
}
dir=3;
b--;
}
// print left column
else if (dir==3)
{
for (k=b;k<=t;k--)
{
printf("%d ",arr[k][l]);
}
dir=0;
l++;
}
}
}
ようこそスタックオーバーフローへ:
はここで働いて可能な実装です!デバッガを使用してコードをステップ実行する方法を学ぶ必要があるようです。良いデバッガを使用すると、プログラムを1行ずつ実行し、どこからずれているかを確認することができます。これはプログラミングをする場合に不可欠なツールです。さらに読む:[小さなプログラムをデバッグする方法](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。 –
コメントを使用してください、コードを分割しないでください。 –
適切なサンプル(非正方形)の行列を入力と期待される出力として表示すると便利です(MCVE([MCVE])の作成方法を参照)。時計回りか反時計回りに螺旋状になっていますか?あなたは左上、右下、または他のコーナーの1つで始まっていますか? (どこに要素 'm [0] [0]'がありますか?左下、左上、他のどこですか?)左上隅に 'm [0] [0]'を使っているように見えます。コメントから判断すると、左上と螺旋時計回りに表示されます。しかし、そのような詳細を明確にすることは、人々があなたが望む答えを得るのを助けるのに役立ちます。 –