在C语言中,输出钻石形状可以通过两层嵌套循环实现。以下是一个示例代码,展示了如何输出一个给定大小的钻石:
```c
include
void printSpaces(int numSpaces) {
for (int i = 0; i < numSpaces; i++) {
printf(" ");
}
}
void printStars(int numStars) {
for (int i = 0; i < numStars; i++) {
printf("*");
}
}
void printDiamond(int size) {
if (size % 2 == 0) {
size++;
}
int midSize = size / 2;
for (int i = 0; i <= midSize; i++) {
int numSpaces = midSize - i;
int numStars = 2 * i + 1;
printSpaces(numSpaces);
printStars(numStars);
printf("\n");
}
for (int i = midSize - 1; i >= 0; i--) {
int numSpaces = midSize - i;
int numStars = 2 * i + 1;
printSpaces(numSpaces);
printStars(numStars);
printf("\n");
}
}
int main() {
int size;
printf("Enter diamond size: ");
scanf("%d", &size);
printDiamond(size);
return 0;
}
```
代码解释:
printSpaces函数:
用于打印指定数量的空格。
printStars函数:
用于打印指定数量的星号。
printDiamond函数:
用于打印钻石形状。首先检查`size`是否为偶数,如果是偶数则将其加1以确保钻石中心对称。然后计算中间位置`midSize`,接着分别打印上半部分和下半部分的钻石形状。
main函数:
从用户输入获取钻石的大小,并调用`printDiamond`函数输出钻石。
示例输出:
```
Enter diamond size: 5
*
*
*
*
*
*
*
*
*
```
通过调整`size`变量的值,可以输出不同大小的钻石。