输入上半部分的行数来打印出一个菱形,效果如图:
这里将他分为两部分来分析,主要就是找每一部分的空格个数与 * 个数的规律
分析上半部分:
代码如下:
//上半部分: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;
}