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;
}