第二行的星字符可能是印错位置了,应该是等腰梯形,第一行为三个*字符,我会用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;
}