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
| #include <stdio.h>
#define LONG_CARRE 10 /* taille tableau (longueur & hauteur) */
int main()
{
signed char tab[LONG_CARRE][LONG_CARRE];
int x,y,x_gauche,x_droite,y_haut,y_bas, x_goutte=4, y_goutte=6; /* valeurs au pif */
int distance, ligne, colonne;
/* for (x=0; x<LONG_CARRE; x++) for (y=0; y<LONG_CARRE; y++) tab[y][x]=-1; */
/* remplissage */
tab[y_goutte][x_goutte]=0;
for (distance=1; distance<LONG_CARRE; distance++)
{
x_gauche=x_goutte-distance;
x_droite=x_goutte+distance;
y_haut=y_goutte-distance;
y_bas=y_goutte+distance;
if (y_haut>=0 && y_haut<LONG_CARRE) for (x=(x_gauche<0?0:x_gauche) ; x<=(x_droite>=LONG_CARRE?LONG_CARRE-1:x_droite) ; x++) tab[y_haut][x]=distance;
if (y_bas>=0 && y_bas<LONG_CARRE) for (x=(x_gauche<0?0:x_gauche) ; x<=(x_droite>=LONG_CARRE?LONG_CARRE-1:x_droite) ; x++) tab[y_bas][x]=distance;
if (x_gauche>=0 && x_gauche<LONG_CARRE) for (y=(y_haut<0?0:y_haut) ; y<=(y_bas>=LONG_CARRE?LONG_CARRE-1:y_bas) ; y++) tab[y][x_gauche]=distance;
if (x_droite>=0 && x_droite<LONG_CARRE) for (y=(y_haut<0?0:y_haut) ; y<=(y_bas>=LONG_CARRE?LONG_CARRE-1:y_bas) ; y++) tab[y][x_droite]=distance;
}
/* affichage */
for (ligne=0; ligne<LONG_CARRE; ligne++)
{
for (colonne=0; colonne<LONG_CARRE; colonne++) printf("%d", tab[ligne][colonne]);
printf("\n");
}
return 0;
} |
Partager