怎么用函数写一个等腰梯形,第一行是三个*

img

第二行的星字符可能是印错位置了,应该是等腰梯形,第一行为三个*字符,我会用for来搞,但是不知道用函数怎么弄,求解


#include<stdio.h>
int sumLine;
void printLine(int n);
int main()
{
    printf("请输入行数:\n");
    scanf("%d",&sumLine);
    for(int i=1; i<=sumLine; i++)
    {
        printLine(i);
    }
    return 0;
}
void printLine(int n)
{
    for(int i=1; i<=sumLine-n; i++)
    {
         printf(" ");
    }
    for(int j=1; j<=n; j++)
    {
        printf("*");
    }




    for(int k=n-1;k>0;k--)
    {
        printf("*");
    }
    printf("\n");
}

如果想函数做,那就是递归,简单说就是传一个参数,表示多少层了,然后每次返回参数+1,表示层数+1,然后开一个全局数组,每次操作时记录(记得初始化),最后在函数开头判断,如果与总层数相同,就退出函数,输出即可

供参考:

#include <stdio.h>
void printdrw(int n)
{
     int i,j;
     for (i = 0;i < n; i++)
     {
         for (j = 0;j < n - i;j++)
              printf(" ");
         for (j = 0;j < 2 * i + 3;j++)
              printf("*");
         printf("\n");
     }
}
int main()
{
    int n;
    scanf("%d", &n);
    printdrw(n);
    return 0;
}