<>拿纸数、画,别空想
<>1.上三角
总之:把打印几个星,空个格,分开考虑
首先,两层循环,一层做换行,一层做行内打印
打印空格和分两次做,用内部两个循环
三角形先输出空格" ",后输出 ,发现规律,先打印n-i-1个空格,再打印* 每行2(i-1)+1
int main() { int n = 0; scanf("%d", &n); // 上三角 for (int i = 1; i<= n; i++) {
// 空格 for (int j = 1; j <=n-i ; j++) { printf(" "); } // * for (int j = 1;j<=2*(
i-1)+1; j++) { printf("*"); } printf("\n"); } return 0; }
<>2. 下三角
总之:把打印几个星,空个格,分开考虑
同上两层
*数:2(n-i+1)
空格数:每行空 i-1个空格
int main() { int n = 0; scanf("%d", &n); for (int i = 1; i <= n; i++) { // 空格
for (int j = 1; j <=i-1 ; j++) { printf(" "); } for (int j = 1;j<=2*(n-i)+1; j++
) { printf("*"); } printf("\n"); } return 0; }
<>3. 菱形(拼起来)
思路:N/2 分上下两半做,然后不断调试
开始,我发现,奇数差多了,偶数只是格式不对
后来我想,让偶数也多打一行,结果,奇数偶数会
我让奇数-1成为偶数,然后让下三角部分的从2开始打印,就省去重复的一行
// 菱形 : 奇数多了一层、偶数格式不对 int main() { int n = 0; scanf("%d", &n); if(n%2!=0) { n
-= 1; } int a = n / 2; int b = n - a; for (int i = 1; i <= a; i++) { // 空格 for (
int j = 1; j <= a - i; j++) { printf(" "); } // * for (int j = 1; j <= 2 * (i -
1) + 1; j++) { printf("*"); } printf("\n"); } // 我让奇数-1,然后让下面从2开始打印 for (int i =
2; i <= b; i++) { // 空格 for (int j = 1; j <= i - 1; j++) { printf(" "); } for (
int j = 1; j <= 2 * (b - i) + 1; j++) { printf("*"); } printf("\n"); } return 0;
}