c语言 blue的大写l,C语言代码训练(一)

请用控制台程序绘制如下图案。

打印30行

a4c26d1e5885305701be709a3d33442f.png一般打印结果

分析

这个图形共31行,可以分成两个部分。上半部分是一个16行的正三角形,下半部分是一个15行的倒三角形。三角形的绘制方法我们上一篇已经讲过了,很容易,我们可以写出下面这段代码。

int main()

{

int i, j;

int n; // 正三角形

for (i = 0; i < 16; i++)

{

for (j = 0; j < 15 - i; j++)

printf(" ");

for (j = 0; j < 2 * i + 1; j++)

printf("*");

printf("\n");

} // 倒三角形

for (i = 0; i < 15; i++)

{

for (j = 0; j < i + 1; j++)

printf(" ");

for (j = 0; j < 2 * (15 - i) - 1; j++)

printf("*");

printf("\n");

}

return 0;

}

自己执行一下这段代码,功能倒是实现了,但是两部分用两组for循环实在有些累赘。把这段代码进行优化,得到最终结果。

答案

#define LINE 31int main(){ int i, j; int n; for (i = 0; i < LINE; i++)

{ if (i <= LINE / 2)

n = i; else

n = LINE - i - 1; for (j = 0; j < (LINE / 2 - n); j++) printf(" "); for (j = 0; j < 2 * n + 1; j++) printf("*"); printf("\n");

} return 0;

}

请大家仔细研读这段代码,有问题欢迎探讨。

如有能力可尝试打印以下结果

a4c26d1e5885305701be709a3d33442f.png背景白色&字体蓝色&心形

大体与上面相同只需用system函数控制窗体背景色与字体颜色即可

至于输出形状可根据自己喜好打印

代码如下​

​#include

#include

int main (){

int i,j,k,n;

scanf("%d",&n);

for(i=0;i

for(j=0;j

printf(" ");

}

for(k=0;k

printf("\3");

}

printf("\n");

}

for(i=n-1;i>0;i--){

for(j=n-i+1;j>0;j--){

printf(" ");

}

for(k=i*2-1;k>0;k--){

printf("\3");

}

printf("\n");

}

system("color f9");

return 0;

}

有兴趣的还可尝试以下代码​

#include

#include

int main (){

int i,j,k,n;

scanf("%d",&n);

for(i=0;i

for(j=0;j

printf(" ");

}

for(k=0;k

printf("\3");

}

printf("\n");

}

for(i=n-1;i>0;i--){

for(j=n-i+1;j>0;j--){

printf(" ");

}

for(k=i*2-1;k>0;k--){

printf("\3");

}

printf("\n");

}

while(1){​

system("color45");​system("color

b4");system("color a6");system("color

b1");system("color f1");system("color

94");system("color 38");system("color

e5");system("color 2c);system("color

d7");system("color 87");system("color

76");system("color

f9");

}​

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值