C语言用一个递归函数写一个输出三角形图形的程序
时间: 2023-10-15 07:08:18 浏览: 119
当然可以!下面是一个使用递归函数来输出三角形图案的C语言程序示例:
```c
#include <stdio.h>
void printStars(int n)
{
if (n > 0)
{
printStars(n - 1); // 递归调用自身,打印前面的图案
for (int i = 0; i < n; i++)
{
printf("*");
}
printf("\n");
}
}
void printTriangle(int n)
{
if (n > 0)
{
printTriangle(n - 1); // 递归调用自身,打印上一行的图案
printStars(n); // 调用另一个递归函数来打印当前行的图案
}
}
int main()
{
int rows;
printf("请输入三角形的行数:");
scanf("%d", &rows);
printTriangle(rows);
return 0;
}
```
在这个程序中,我们定义了两个递归函数 `printStars` 和 `printTriangle`。
`printStars` 函数用于打印一行由星号组成的图案。它接收一个参数 `n`,表示需要打印的星号数量。首先,它检查 `n` 是否大于0,如果是,则递归调用自身来打印前面的图案。然后,使用一个循环来打印 `n` 个星号。最后,打印一个换行符。
`printTriangle` 函数用于输出三角形图案。它也接收一个参数 `n`,表示三角形的行数。首先,它检查 `n` 是否大于0,如果是,则递归调用自身来打印上一行的图案。然后,调用 `printStars` 函数来打印当前行的图案。
在 `main` 函数中,我们接收用户输入的行数,并将其传递给 `printTriangle` 函数来输出三角形图案。
希望这个示例对你有帮助!如果还有其他问题,请随时提问。