龙空技术网

C语言——有人能教我打印一个六芒星么

暴躁星哥哥 231

前言:

此刻大家对“c语音星星”大概比较重视,各位老铁们都想要知道一些“c语音星星”的相关文章。那么小编在网摘上汇集了一些关于“c语音星星””的相关文章,希望小伙伴们能喜欢,兄弟们快快来了解一下吧!

在网上可能有人有C语言打印五角星还挺好看的,于是我就想先整个简单的,先打印个六芒星,没想到确实还没有像想象中的那么简单。

讲一下我实现的思路:

首先,把六芒星分成上下两部分,然后以上边一部分为例:

每一行的格式均为若干空格,一个星星,若干空格,一个星星,若干空格,一个星星,若干空格,一个星星.一共是打印四次空格四次星星。

然后细节方面是,

1.空格的数目和行数的关系

2.前有几行星星打印为空格

3.中间有一行星星打印为空格

参考代码:

#include <stdio.h>#include <stdlib.h>void paint(n){ int i,j; for (i=0; i<=n/2; i++) { for(j=0; j<i; j++) printf(" "); if(i>=n/5) printf("*"); else printf(" "); for(j=0; j<n-1-2*i; j++) { if(i==n/5) printf("*"); else printf(" "); } if(i!=n/2) printf("*"); for(j=0; j<2*i-1; j++) { if(i==n/5) printf("*"); else printf(" "); } if(i!=0&&i!=n/2) printf("*"); for(j=0; j<n-1-2*i; j++) { if(i==n/5) printf("*"); else printf(" "); } if(i>=n/5) printf("*"); printf("\n"); } for (i=0; i<n/2; i++) { for(j=0; j<n/2-i-1; j++) printf(" "); if(i<=n/5) printf("*"); else printf(" "); for(j=0; j<2*i+1; j++) { if(i==n/5) printf("*"); else printf(" "); } printf("*"); for(j=0; j<n-3-2*i; j++) { if(i==n/5) printf("*"); else printf(" "); } if(i!=n/2-1) printf("*"); for(j=0; j<2*i+1; j++) { if(i==n/5) printf("*"); else printf(" "); } if(i<=n/5) printf("*"); printf("\n"); }}int main(){ paint(10); return 0;}

能力有限,写的稍微有点儿复杂,读者有什么好的解法可以指教一下呀,欢迎留言讨论。

如果您喜欢,

欢迎点一下关注呦。

标签: #c语音星星