C语言——打印菱形
输入上半部分的行数来打印出一个菱形,效果如图:
这里将他分为两部分来分析,主要就是找每一部分的空格个数与 * 个数的规律
分析上半部分:
代码如下:
//上半部分:
for (int i = 1; i <= n; i++) { //行数做循环条件
//1、打印空格
for (int j = 0; j < n - i; j++) {
printf(" ");
}
//2、打印*号
for (int j = 0; j < 2*i-1; j++) {
printf("*");
}
//3、没打印完一排换行
printf("\n");
}
分析下半部分:
代码如下:
//下半部分:
for (int i = 1; i <= n - 1; i++) {
for (int j = 0; j < i; j++) {
printf(" ");
}
for (int j = 0; j < 2*(n-1-i)+1; j++) {
printf("*");
}
printf("\n");
}
最后将两部分代码写在一起就好了:
//打印菱形
int main() {
int n; //上半部分行数
scanf("%d", &n);
//上半部分:
for (int i = 1; i <= n; i++) { //行数做循环条件
//1、打印空格
for (int j = 0; j < n - i; j++) {
printf(" ");
}
//2、打印*号
for (int j = 0; j < 2*i-1; j++) {
printf("*");
}
//3、没打印完一排换行
printf("\n");
}
//下半部分:
for (int i = 1; i <= n - 1; i++) {
for (int j = 0; j < i; j++) {
printf(" ");
}
for (int j = 0; j < 2*(n-1-i)+1; j++) {
printf("*");
}
printf("\n");
}
return 0;
}