C语言使用for循环输出菱形
以下是一个使用C语言for循环输出菱形的完整代码示例:

(图片来源网络,侵删)
#include <stdio.h>
int main() {
int n, i, j, space;
// 输入菱形的行数(必须是奇数)
printf("请输入菱形的行数(奇数):");
scanf("%d", &n);
// 上半部分菱形
for (i = 1; i <= n; i += 2) {
// 打印空格
for (space = 1; space <= (n - i) / 2; space++) {
printf(" ");
}
// 打印星号
for (j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
// 下半部分菱形
for (i = n - 2; i >= 1; i -= 2) {
// 打印空格
for (space = 1; space <= (n - i) / 2; space++) {
printf(" ");
}
// 打印星号
for (j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
代码说明
-
输入处理:程序首先要求用户输入一个奇数作为菱形的行数。
-
上半部分菱形:
- 外层循环控制行数(i从1开始,每次增加2,直到n)
- 第一个内层循环打印前导空格(数量为(n-i)/2)
- 第二个内层循环打印星号(数量等于当前行号i)
-
下半部分菱形:
- 外层循环从n-2开始递减,每次减少2,直到1
- 同样使用两个内层循环打印空格和星号
示例输出
如果输入5,程序将输出:

(图片来源网络,侵删)
如果输入7,程序将输出:
变体:空心菱形
如果需要输出空心菱形,可以修改星号打印部分的逻辑:
// 上半部分空心菱形
for (i = 1; i <= n; i += 2) {
for (space = 1; space <= (n - i) / 2; space++) {
printf(" ");
}
for (j = 1; j <= i; j++) {
if (j == 1 || j == i) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
// 下半部分空心菱形
for (i = n - 2; i >= 1; i -= 2) {
for (space = 1; space <= (n - i) / 2; space++) {
printf(" ");
}
for (j = 1; j <= i; j++) {
if (j == 1 || j == i) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
这样输出的是空心菱形,例如输入5时输出:
