这个题目是很常见的,但是还是花费我三四个小时甚至更多时间去实现。为了让初学者更快掌握打印菱形,以下是我的一点经验:
1.从行数和列数入手,需要嵌套式for循环来控制;
2.整个菱形可以分为上下两部分打印;
3.上半部分每行空格数:n-i-1,数:2i+1。其中n 上部分行数(包括最长行),i循环变量,我这里从0开始。
4.下半部分空格和上面类似,不在赘述。
5.个人认为难点在于习惯空格需要打印,“ ”一定不能没有空格。
下半部分
3. # include <stdio.h>
int main(){
int n=0; int i=0;int j=0;
printf(“input n\n”);
scanf("%d", &n);
//打印上边部分
for (i= 0; i < n; i++){
for (j = 0; j < n - 1 - i; j++){
printf(" ");
}
for (j = 0; j <1 +2 i; j++){
printf("*");
}
printf("\n");
}
// 打印下半部分
for (i = 1; i < n; i++){
for (j = 0; j <i ; j++){
printf(" “);
}
for (j = 0; j <2n-2i-1 ; j++){
printf(”*");
}
printf("\n");
}
return 0;
}
好不容易弄出来了,真的很高兴。但是比起别人真的有点失落,第一次写表达的不够简练,还望海涵!