|
> この条件でn(100以下の奇数)をキーボードから入力して、
> n*nの魔方陣を表示するC言語プログラムを作ります。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int n;
while (printf("odd number: "), scanf("%d", &n) == 1)
if (n & 1 && (unsigned)n < 100) {
int i, j, k = 0, r = n, c = n + n/2;
int *b = malloc(n * n * sizeof(int));
if (b == NULL) return 1;
for (i = 0; i < n; i++, r += 2, c--)
for (j = 0; j < n; j++)
b[(r-j)%n*n + (c+j)%n] = ++k;
for (i = 0; i < n*n; i++)
printf("%3d%c", b[i], (i+1)%n ? ' ' : '\n');
free(b);
}
return 0;
}
|