- C/C++の宿題片付けます 169代目 [転載禁止]©2ch.net
644 :デフォルトの名無しさん[sage]:2015/10/28(水) 11:53:52.17 ID:kvcGwh7f - #include <stdio.h>
int add[][2] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}}; int mat[9][9]; int main(int argc, char **argv){ int i, j, l, d = 0, n, x = 0, y = 0, xx, yy; fprintf(stdout, "正方形の一辺の長さ "); fscanf(stdin, "%d", &l); fprintf(stdout, "\n"); n = l * l; for(i = 1; i <= n; i++){ mat[y][x] = i; xx = x + add[d][0]; yy = y + add[d][1]; if(xx >= l || yy >= l || xx < 0 || yy < 0 || mat[yy][xx] > 0){ d++; if(d >= 4) d = 0; } x += add[d][0]; y += add[d][1]; } for(i = 0; i < l; i++){ for(j = 0; j < l; j++) printf("%3d", mat[i][j]); printf("\n"); } return 0; }
|