使用c语言分别设计非递归与逆归函数void print(int n),在屏幕上按以下规律输出由n行*组成的三角形(此处n为6),并编写main()函数进行测试。 *********** ********* ******* ***** *** *
时间: 2024-07-03 16:01:21 浏览: 144
在C语言中,你可以使用非递归和递归两种方法来设计一个函数`print_triangle(int n)`,以打印出指定行数的星号三角形。这里是非递归版本的实现:
```c
#include <stdio.h>
// 非递归函数
void print_triangle_non_recursive(int n) {
for (int i = 0; i < n; ++i) {
// 打印当前行的星号
for (int j = 0; j <= i; ++j) {
printf("* ");
}
printf("\n");
}
}
int main() {
int n = 6;
print_triangle_non_recursive(n);
return 0;
}
```
下面是递归版本的实现:
```c
void print_triangle_recursive(int n, int level = 1) {
if (level > n) {
return;
}
// 打印当前行的星号
for (int i = 0; i < level; ++i) {
printf("* ");
}
printf("\n");
// 递归调用自身,减少行数
print_triangle_recursive(n, level + 1);
}
int main() {
int n = 6;
print_triangle_recursive(n);
return 0;
}
```
这两个版本的`main()`函数都会输出一个6行的星号三角形。运行以上代码,即可看到相应的三角形输出。
阅读全文