c语言函数递归打印三角形
时间: 2024-01-11 19:19:35 浏览: 172
以下是一个C语言函数递归打印三角形的例子:
```c
#include <stdio.h>
void print_triangle(int n) {
if (n == 1) {
printf("*\n");
} else {
print_triangle(n-1);
for (int i = 0; i < 2*n-1; i++) {
printf("*");
}
printf("\n");
}
}
int main() {
int n = 5;
print_triangle(n);
return 0;
}
```
该函数接受一个整数n作为参数,打印一个由星号组成的三角形,其中第一行有一个星号,第二行有三个星号,以此类推,直到第n行有2n-1个星号。该函数使用递归来实现,当n等于1时,只需要打印一个星号;否则,先递归打印n-1行,然后打印第n行。
相关问题
用C语言函数递归写一个三角形图形程序
当然可以!下面是一个使用递归函数来打印三角形图案的C语言程序示例:
```c
#include <stdio.h>
void printTriangle(int n)
{
if (n > 0)
{
printTriangle(n - 1); // 递归调用自身,打印上一行的图案
for (int i = 0; i < n; i++)
{
printf("* ");
}
printf("\n");
}
}
int main()
{
int rows;
printf("请输入三角形的行数:");
scanf("%d", &rows);
printTriangle(rows);
return 0;
}
```
该程序中的 `printTriangle` 函数使用递归来打印三角形图案。首先,它检查传入的行数是否大于0,如果是,则递归调用自身来打印前面的图案。然后,在当前行中使用一个循环来打印一系列星号(`*`),表示当前行的图案。最后,打印一个换行符(`\n`)来移动到下一行。
在 `main` 函数中,我们接收用户输入的行数,并将其传递给 `printTriangle` 函数来打印三角形图案。
希望这个示例能帮助到你!如果有任何疑问,请随时问我。
用C语言函数递归写一个输出三角形图形的程序
当然,我可以帮你编写一个使用递归函数来输出三角形图形的 C 语言程序。以下是一个示例程序:
```c
#include <stdio.h>
void printTriangle(int rows, int currentRow, int stars) {
if (currentRow > rows) {
return;
}
if (stars > 0) {
printf("* ");
printTriangle(rows, currentRow, stars - 1);
} else {
printf("\n");
printTriangle(rows, currentRow + 1, currentRow + 1);
}
}
int main() {
int rows;
printf("请输入行数:");
scanf("%d", &rows);
printTriangle(rows, 1, 1);
return 0;
}
```
这个程序定义了一个递归函数 `printTriangle`,它接受三个参数:`rows` 表示总行数,`currentRow` 表示当前行数,`stars` 表示当前行应该打印的星号数量。
递归函数的基本思路是:如果当前行的星号数量大于 0,则打印一个星号并调用自身递归地减少 `stars` 的值;否则,打印一个换行符,并调用自身递归地打印下一行。
在 `main` 函数中,程序会要求你输入一个整数作为行数,然后调用 `printTriangle` 函数来输出相应行数的三角形图形。
希望这个示例能够满足你的需求!如果你还有其他问题,请随时提问。
阅读全文