前提・実現したいこと
書きたいプログラムは内から外への渦巻なのですが、
以下のプログラムでは、外から内への渦巻となってしまいます。
大きい方から逆順に数値を入れて、最後に入れたところが1の入る位置になるように
入れる数値nを最大値(x*y)から初めていくということはわかるのですが、
それをコードにできません。
初学者です、よろしくお願いいたします。
#include <stdio.h> int main(void) { #define N 6 int a[N+2][N+2] = { 0 }; int p[4] = { 1,0,-1,0 }; int q[4] = { 0,1,0,-1 }; for (int i = 0; i <= N; i++) a[0][i] = a[N+1][i+1] = a[i][0] = a[i+1][N+1] = 1; for (int x = 1, y = 1, t = 0, i = 1; i <= N*N; x += p[t], y += q[t]) if (a[y][x] = i++, a[y + q[t]][x + p[t]] && ++t == 4) t = 0; for (int i = 1; i <= N; i++, putchar('\n')) for (int j = 1; j <= N; j++) printf("%4d", a[i][j]); return 0; } ```c言語
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。