输出倒金字塔

今天遇见一个很有趣的题:

 这里我们遵循化繁为简,先死后活的思路

先做正三角

int main() {
	//空格
	//i表示层数
	int n = 3;
	/*int n = 0;
	scanf_s("%d", &n);*/
	for (int i = 0; i <n; i++) {
		for (int j= 0; j < n-i-1; j++) {
			printf(" ");
		}
		for (int k = 0; k <= i; k++) {
			printf("* ");
		}
		//打印完一层*就换行
		printf("\n");
	}
}

 然后我们用scanf将它复杂化

int main() {
	//空格
	//i表示层数
	//int n = 3;
	int n;
	scanf_s("%d", &n);
	for (int i = 0; i <n; i++) {
		for (int j= 0; j < n-i-1; j++) {
			printf(" ");
		}
		for (int k = 0; k <= i; k++) {
			printf("* ");
		}
		//打印完一层*就换行
		printf("\n");
	}
}

 然后后面我们来做倒金字塔的,思路是* (后面有空格)

两个for循环来解决问题

 

#include <stdio.h>
int main() {
    int layers;//层数
    scanf_s("%d",&layers);
    for (int i = 0; i < layers; i++) {
        for (int j = 0; j < i; j++) {
            printf(" ");
        }
        for (int k = 0; k < layers- i; k++) {
            printf("* ");
        }
        printf("\n");
    }
    return 0;
}