c语言平行四边形代码

在C语言中,创建一个平行四边形的文本表示可以通过打印空格和星号(*)来实现。以下是一个简单的示例,这个示例将创建一个左对齐的平行四边形:

c复制代码
#include <stdio.h>
void print_parallelogram(int rows, int base) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < base - i; j++) {
printf(" ");
}
for (int k = 0; k <= i; k++) {
printf("*");
}
printf("\n");
}
}
int main() {
int rows, base;
printf("请输入平行四边形的行数: ");
scanf("%d", &rows);
printf("请输入平行四边形的底边长度: ");
scanf("%d", &base);
print_parallelogram(rows, base);
return 0;
}

在这个程序中,我们首先定义了一个函数print_parallelogram,它接受两个参数:平行四边形的行数和底边长度。然后,我们使用两个嵌套的for循环来打印每一行。外部循环控制行数,内部循环则控制每一行的内容。第一个内部循环打印空格,第二个内部循环打印星号。通过调整每一行打印的空格数量,我们可以创建出一个左对齐的平行四边形。

main函数中,我们从用户那里获取平行四边形的行数和底边长度,然后调用print_parallelogram函数来打印平行四边形。

如果你想要创建一个右对齐的平行四边形,你可以稍微调整打印空格和星号的位置。以下是一个示例代码,它打印一个右对齐的平行四边形:

c复制代码
#include <stdio.h>
void print_parallelogram(int rows, int base) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < i; j++) {
printf(" ");
}
for (int k = 0; k < base; k++) {
printf("*");
}
printf("\n");
}
}
int main() {
int rows, base;
printf("请输入平行四边形的行数: ");
scanf("%d", &rows);
printf("请输入平行四边形的底边长度: ");
scanf("%d", &base);
print_parallelogram(rows, base);
return 0;
}

在这个版本的print_parallelogram函数中,第一个内部循环打印的空格数量是根据当前行数i来决定的,因此随着行数的增加,空格的数量也会增加,从而实现右对齐的效果。第二个内部循环则固定打印base数量的星号,以形成平行四边形的底边。

如果你想要创建一个中心对齐的平行四边形,那就需要计算每一行需要打印的空格数量,使得星号能够居中。这通常涉及到计算每一行需要的总宽度(包括空格和星号),然后确定空格和星号应该如何分布。

下面是一个中心对齐的平行四边形的示例代码:

c复制代码
#include <stdio.h>
void print_centered_parallelogram(int rows, int base) {
int total_width = base + 2 * (rows - 1); // 计算总宽度,包括两边的空格
for (int i = 0; i < rows; i++) {
int leading_spaces = (total_width - base) / 2; // 计算前导空格数量
int trailing_spaces = total_width - base - leading_spaces; // 计算尾随空格数量
// 打印前导空格
for (int j = 0; j < leading_spaces; j++) {
printf(" ");
}
// 打印星号
for (int k = 0; k < base; k++) {
printf("*");
}
// 打印尾随空格(如果有的话)
for (int l = 0; l < trailing_spaces; l++) {
printf(" ");
}
printf("\n"); // 换行
}
}
int main() {
int rows, base;
printf("请输入平行四边形的行数: ");
scanf("%d", &rows);
printf("请输入平行四边形的底边长度: ");
scanf("%d", &base);
print_centered_parallelogram(rows, base);
return 0;
}

在这个版本的print_centered_parallelogram函数中,我们首先计算了打印整个平行四边形所需的总宽度,然后计算了每一行需要的前导空格和尾随空格的数量,以确保星号能够居中。接着,我们分别打印前导空格、星号和尾随空格(如果有的话),然后换行以开始下一行的打印。