This gives the desired output format, but does not use a 2d array. I assume this is for an assignment and as per the homework policy on this board I removed the 2d array. But you can use this as a template to see how to output formatted tables.
Code:
#include <stdio.h>
const int num_rows = 10;
const int num_columns = 10;
int main (void)
{
int row, column;
// print column header
printf("%-4c", '*');
for (column = 1; column < num_columns; column++)
printf("%-4d", column);
putchar('\n');
for (row = 1; row < num_rows; row++)
{
printf("%-4d", row);
for(column = 1; column < num_columns; column++)
{
printf("%-4d", row * column);
}
printf("\n");
}
getchar();
return 0;
}