如何在C语言中打印其他形状,比如星号三角形或菱形?
时间: 2024-09-06 20:02:36 浏览: 48
在C语言中打印星号三角形或菱形等形状,可以通过嵌套循环来实现。这里以打印一个简单的星号三角形为例进行说明。
星号三角形的基本思路是:外层循环控制行数,内层循环分两部分,第一部分打印空格,第二部分打印星号。每行的星号数量固定(例如每行递增一个),而空格数量则是递减的,从而形成一个三角形的形状。
以下是打印一个右对齐的三角形的一个简单示例代码:
```c
#include <stdio.h>
int main() {
int i, j, rows = 5; // rows 是三角形的高度
for(i = 1; i <= rows; i++) {
// 打印空格
for(j = i; j < rows; j++) {
printf(" ");
}
// 打印星号
for(j = 1; j <= (2 * i - 1); j++) {
printf("*");
}
// 换行
printf("\n");
}
return 0;
}
```
这段代码会打印出如下形状:
```
*
***
*****
*******
*********
```
如果要打印一个菱形,可以通过先打印上半部分的三角形,再打印下半部分的倒三角形来实现。这需要两个循环:第一个循环打印上半部分,第二个循环打印下半部分。
以下是一个打印菱形的示例代码:
```c
#include <stdio.h>
int main() {
int i, j, rows = 5; // rows 是菱形的一半高度
// 打印上半部分
for(i = 1; i <= rows; i++) {
for(j = i; j < rows; j++) {
printf(" ");
}
for(j = 1; j <= (2 * i - 1); j++) {
printf("*");
}
printf("\n");
}
// 打印下半部分
for(i = rows - 1; i >= 1; i--) {
for(j = rows; j > i; j--) {
printf(" ");
}
for(j = 1; j <= (2 * i - 1); j++) {
printf("*");
}
printf("\n");
}
return 0;
}
```
这段代码会打印出如下形状:
```
*
***
*****
*******
*********
*******
*****
***
*
```
阅读全文