1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#define MAX(X, Y) (((X) > (Y)) ? (X) : (Y))
#include <stdio.h>
void affiche_spirale(int N)
{
int i,j,x;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
// `x` stores the layer in which (i, j)'th element lies
// find a minimum of four inputs
x = MAX(MAX(i, j), MAX(N - 1 - i, N - 1 - j));
// print upper right half
if (i < j) {
printf("%i. (i,j): %i,%i x:%i",(N - 2*x) * (N - 2*x) - i - j + 2*x,i,j,x);
}
// print lower left half
else {
printf("%i.. (i,j): (%i,%i) x:%i",(N - 2*x -2) * (N - 2*x - 2) + i + j -2*x,i,j,x);
}
printf("\t");
}
printf("\n");
}
}
int main() {
affiche_spirale(3);
return 0;
} |
Partager