云计算百科
云计算领域专业知识百科平台

C语言学习记录——BC114 圣诞树

圣诞树_牛客题霸_牛客网

#include <stdio.h>

int main()
{
int a;
while (scanf("%d", &a) != EOF) //a个三层
{
int d=3*a;//最开头到中间有d个坑,d其实有列的属性,只考虑每行第一个*与其前空的个数,往后由于三类间隔不变,故考虑循环重复次序即可
for (int i = 1; i <= a; i++)//每三行为一轮
{
for (int k = 1; k <= d-1; k++)//减一是减去*所占的一个坑
{
printf(" ");//空白打印
}
for (int b = 1; b <= i; b++)
{
printf("* ");//空白打印后,第一个*后都是重复,因为间隔相同
}
printf("\\n");//第一类打印
for (int k = 1; k <= d-2; k++)
{
printf(" ");
}
for (int b = 1; b <= i; b++)
{
printf("* * ");
}
printf("\\n");//第二类打印
for (int k = 1; k <= d-3; k++)
{
printf(" ");
}
for (int b = 1; b <= i; b++)
{
printf("* * * ");
}
printf("\\n");//第三类打印
d = d – 3;
}//该程序还巧妙的用到了printf打印完后,光标停留在其后,累积成的,自上而下,因而可以不用if else来判断不同类型行输入的前提条件
int c=1;//打印树柄
while (c<=a)
{
for (int i = 1; i < 3*a; i++)
{
printf(" ");
}
printf("*\\n");
c++;
}
}
return 0;
}

赞(0)
未经允许不得转载:网硕互联帮助中心 » C语言学习记录——BC114 圣诞树
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!