原题链接:https://ac.nowcoder.com/acm/contest/19305/1001
题目描述
输出双层金字塔。
输入描述:
多个测试数据。每个测试数据输入一个整数n( 2 <= n <= 9)
输出描述:
输出双层金字塔
示例1
输入
2
5
输出
现在的打印题都这么毒瘤占内存
本题有多组输入,最外层记得套个循环输入while(scanf("%d",&c)==1)
或while(cin >> c)
上下金字塔分两次两个三角形打印,写两个for循环,每个循环中嵌套两个for循环分别打印空格和*
内层for循环的趟数代表打印空格和*的个数
找规律,不难找出打印个数与循环第几趟与输入的关系,真难找就画图列表找规律
第二个for循环同理找规律
记得每次打印完后需要打印一个回车
写下代码
#include <stdio.h> #include <iostream> using namespace std; int main() { int a1,a2,c; while(scanf("%d",&c)==1)//多组数据输入 { for(a1=1;a1<=c;a1++)//打印正三角形 { for(int b=1;b<=(c-a1);b++) printf(" "); for(int b=1;b<=(2*a1-1);b++) printf("*"); printf("\n"); } for(a2=1;a2<=(c-1);a2++)//打印倒三角形 { for(int b=1;b<=a2;b++) printf(" "); for(int b=1;b<=((c-a2)*2-1);b++) printf("*"); printf("\n"); } } return 0; }