Salve mi trovo davanti ad un problema, devo scrivere in un array a 2 dimensioni.
all'interno di ques'array devo inserire dei numeri che formino una piramide.

esempio
codice:
2221222
2211122
2111112
1111111
codice:
#include <stdio.h>
int main(void)
{
  int altezza, riga, i;

  printf("Altezza piramide (1..40) ? ");
  scanf("%d", &altezza);
  riga = altezza;
  int c = 1;
  int d = 2;
  int prima =0,j,l;
  int mat[altezza][altezza];

    for (riga = 1; riga <= altezza; riga++)
    {
        for (i = 1; i <= altezza - riga; i++)
            mat[riga][i]=2;
            printf("%6d ", mat[riga][i]);
            for (i = 1; i <= riga * 2 - 1; i++)  /* stampa la sequenza di asterischi */
                mat[riga][i]=1;
                for (i = 1 ; i <= altezza - riga ; i++)
                mat[riga][i]=2;
                putchar('\n');
            }
    return 0;
}
quando eseguo non mi da errore ma solo numeri di 5o6 cifre strani.
spero che qualcuno possa aiutarmi