c语言打印实心等边三角形
时间: 2024-10-10 17:03:51 浏览: 30
在C语言中,可以使用循环结构来打印实心等边三角形。以下是一个简单的示例,这个程序会打印一个由星(*)组成的5行的等边三角形:
```c
#include <stdio.h>
int main() {
int i, j, rows;
// 获取用户想要打印的三角形行数
printf("请输入三角形的行数:");
scanf("%d", &rows);
for (i = 1; i <= rows; i++) { // 行数循环
// 每行打印的空格数量等于前一行减一
for (j = rows - i; j > 0; j--) {
printf(" ");
}
// 每行打印星的数量等于当前行数
for (j = 1; j <= i; j++) {
printf("*");
}
printf("\n"); // 换行
}
return 0;
}
```
在这个例子中,外部循环控制行数,内部循环分别处理每个位置的空格和星号。如果你想打印其他行数的三角形,只需修改`rows`变量即可。
相关问题
用C语言打印类似谢宾斯基三角形的三角形,使此三角形与谢宾斯基三角形的唯一区别为此三角形的空隙为大小相等的边长为三的等边三角形。(使用交替排列的方法)
在C语言中,要打印类似谢宾斯基三角形(Sierpinski Triangle),但其空隙是等边三角形,你可以参考以下递归算法。这个算法会交替放置实心点(通常用星号*表示)和空隙(用三个空格***表示)。假设空隙的边长为3,我们可以这样编写:
```c
#include <stdio.h>
#define SIZE 10 // 设置三角形的最大尺寸
void print_triangle(int row, char pattern, int gap) {
if (row == 0)
return;
// 打印当前行
for (int i = 0; i < row; i++) {
for (int j = 0; j < row - i; j++) {
// 根据模式打印星号或空隙
if (pattern == '1') {
printf("*");
} else if (pattern == '2') {
printf(" ** ");
}
}
// 在行结束处换行
printf("\n");
}
// 递归打印下一行,切换图案
print_triangle(row - 1, pattern ^ 1, gap); // XOR操作切换图案
}
int main() {
int rows = SIZE / 2; // 谢宾斯基三角形每层有3^n个单元格
print_triangle(rows, '1', rows);
return 0;
}
```
在这个例子中,`print_triangle`函数接收行数、当前图案('1'代表星号,'2'代表空隙)和空隙宽度。每次递归调用时,它都会将图案切换一次(通过XOR运算),同时保持空隙的宽度不变。
用C语言打印一个空心三角形
在C语言中,我们可以使用循环结构来打印空心三角形。这里给出一个简单的例子,如何打印一个5行的空心三角形:
```c
#include <stdio.h>
void print_hollow_triangle(int n) {
for (int i = 0; i < n; i++) { // 首先外层循环控制行数
// 打印空格
for (int j = n - i - 1; j > 0; j--) {
printf(" ");
}
// 打印星号(*)
for (int k = 0; k <= 2 * i; k++) {
printf("*");
}
// 每行结束换行
printf("\n");
}
// 再次打印一行星号作为底部装饰
for (int m = 0; m < n; m++) {
printf("*\n");
}
}
int main() {
int rows = 5;
print_hollow_triangle(rows);
return 0;
}
```
当你运行这个程序,它会打印出一个5行的空心三角形,其中内部是实心星号,外部是空格。
阅读全文