采用二维字符数组的函数实现如下的三角形星号图,程序可以改变行数、星号并统计字符数。 正立三角形 * *** ***** ******* ********* 作业要求
时间: 2024-06-15 16:06:45 浏览: 76
要实现正立三角形星号图,可以采用二维字符数组的方式来实现。以下是一个示例的C语言代码:
```c
#include <stdio.h>
void printTriangle(int rows, char symbol) {
int i, j;
int cols = 2 * rows - 1; // 计算每行的字符数
// 创建二维字符数组并初始化为空格
char triangle[rows][cols];
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
triangle[i][j] = ' ';
}
}
// 在数组中填充星号
int mid = cols / 2;
for (i = 0; i < rows; i++) {
for (j = mid - i; j <= mid + i; j++) {
triangle[i][j] = symbol;
}
}
// 打印数组
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
printf("%c", triangle[i][j]);
}
printf("\n");
}
}
int main() {
int rows;
char symbol;
printf("请输入行数:");
scanf("%d", &rows);
printf("请输入星号字符:");
scanf(" %c", &symbol); // 注意空格,避免读取上一个输入的换行符
printTriangle(rows, symbol);
return 0;
}
```
这段代码中,`printTriangle`函数接受两个参数:行数和星号字符。它首先根据行数计算出每行的字符数,然后创建一个二维字符数组,并将所有元素初始化为空格。接下来,根据行数和字符数,在数组中填充星号。最后,打印数组中的内容,即可得到正立三角形星号图。
请注意,这里使用了`scanf`函数来获取用户输入的行数和星号字符。在输入星号字符时,我们在`%c`之前加了一个空格,这是为了消耗掉上一个输入的换行符,避免影响后续的输入。
阅读全文