#include <stdio.h>
void printUp(int n)
{
    int i,j,k;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n+1-i;j++)
        {
            printf(" ");
        }
        for(int k=1;k<=i;k++)
        {
            printf("* ");
        }
        printf("\n");
    }
}
void printDown(int n)
{
    int i,j,k;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            printf(" ");
        }
        for(int k=1;k<=n+1-i;k++)
        {
            printf("* ");
        }
        printf("\n");
    }
}
int main() {
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        printUp(n);
        for(int i=1;i<=n+1;i++)
        {
            printf("* ");
        }
        printf("\n");
        printDown(n);

    }

}

实际就是把前两道题的代码综合一下,先输出上半部分(用函数),然后输出中间部分,最后输出下半部分(用函数)。代码可能较长,但是很清晰