¿Cómo imprimir este patrón de estrella en C?

Me gustaría imprimir el siguiente patrón, donde el usuario ingresa n y m (4 y 6) el límite exterior debe estar formado por estrellas y el interior debe estar lleno de círculos.

****** ****** ****** ****** *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* ****** ****** ****** ****** ****** ****** ****** ****** *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* ****** ****** ****** ****** ****** ****** ****** ****** *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* ****** ****** ****** ****** ****** ****** ****** ****** *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* *oooo* ****** ****** ****** ****** 

El código que he escrito es el siguiente. ¿Que estoy haciendo mal?

 #include  #include  int main(void) { int n,i,j,k,m,n1; printf("enter table size and enter square size"); scanf("%d %d", &n, &n1); for (i = 0; i < n; i++) { for (j = 0; j < n1; j++) { for ( k = 0; k < n; k++) { for ( m = 0; m < n1; m++) { { if(i==0 || i==n-1) { printf("*"); } else if(j==0 || j==n-1) { printf("*"); } else { printf("o"); } } } printf(" "); } printf("\n"); } printf("\n"); } system("pause"); return 0; } 

El código corregido es

 #include  #include  int main(void) { int n,i,j,k,m,n1; printf("enter table size and enter square size"); scanf("%d %d", &n, &n1); for (i = 0; i < n; i++) { for (j = 0; j < n1; j++) { for ( k = 0; k < n; k++) { for ( m = 0; m < n1; m++) { { if(j==0 || j==n1-1) { printf("*"); } else if(m==0 || m==n1-1) { printf("*"); } else { printf("o"); } } } printf(" "); } printf("\n"); } printf("\n"); } system("pause"); return 0; } 

Sus variables de índice hacen lo siguiente:

  |----------------n----------------------| |--m--| - ******* ******* ******* ******* ******* | *o ... | *o ... j *o ... | | - 

Entonces, básicamente, debe imprimir * cuando j está en la primera fila o la última fila de cada cuadrado o cuando m está en la primera fila o la última fila del cuadrado (n1).

Espero que esto ayude