求解,提供一下思路~

实在不理解这里的i,j,分别代表的意思,还有i,j的取值范围,希望有人提供一下思路,多谢!

img

#include <stdio.h>

int main() {
  int i, j, n;
  printf("请输入菱形对称轴的行数: ");
  scanf("%d", &n); // (1)
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= 2 * n; j++)            // (2)
      if (j == n + 1 - i || j == n - 1 + i) // (3)
        printf("*");
      else
        printf(" ");
    printf("\n");
  }
  for (i = 1; i < n; i++) {
    for (j = 1; j <= 2 * n - 1 - i; j++)
      if (j == i + 1 || j == 2 * n - 1 - i) // (4)
        printf("*");
      else
        printf(" ");
    printf("\n"); // (5)
  }
  return 0;
}
$ gcc -Wall main.c
$ ./a.out
请输入菱形对称轴的行数: 5
    *     
   * *    
  *   *   
 *     *  
*       * 
 *     *
  *   *
   * *
    *