从键盘上任意输入一个自然数,输出下图:形如“沙漏”的由数字组成的图形

输入:4
输出:
1234321
23432
343
4
343
23432
1234321


void printStrLine(int offset, int start, int end)
{
    for (int i = 0; i < offset; i++) {
        printf(" ");
    }

    for (int i = start; i < end; i++) {
        printf("%u", i);
    }

    for (int i = end; i >= start; i--) {
        printf("%u", i);
    }

    printf("\r\n");
}

int main()
{
    int num;
    printf("请输入数字:");
    scanf("%d", &num);
    for (int i = 0; i < num; i++) {
        printStrLine(i, i + 1, num);
    }
    for (int i = num - 2; i >= 0; i--) {
        printStrLine(i, i + 1, num);
    }
    return 0;
}

供参考:

#include<stdio.h>
int main()
{
  int i,j,n,k;
  scanf("%d",&n);
  for(i=n-1;i>0;i--) //上半部
  {
      for(j=i;j<n-1;j++)
         printf(" ");
      for(j=0,k=n-i;j<2*i+1;j++)
         printf("%d" ,j < i ? k++ : k--);
      printf("\n");
  }
  for(i=0;i<n;i++)  //下半部
  {
      for(j=i;j<n-1;j++)
          printf(" ");
      for(j=0,k=n-i;j<2*i+1;j++)
          printf("%d" ,j < i ? k++ : k--);
      printf("\n");
  }
  return 0;
}