
在这里我们将看到如何使用C语言生成空心金字塔和菱形图案。我们可以很容易地生成实心金字塔图案。要使其成为空心,我们需要添加一些小技巧。
空心金字塔
对于第一行的金字塔,它将打印一个星号,并在最后一行打印n个星号。对于其他行,它将在行的开头和结尾分别打印两个星号,并在这两个星号之间有一些空格。
示例代码
#include int main() { int n, i, j; printf("Enter number of lines: "); scanf("%d", &n); for(i = 1; i<=n; i++) { for(j = 1; j<=(n-i); j++){ //print the blank spaces before star printf(" "); } if(i == 1 || i == n){ //for the first and last line, print the stars continuously for(j = 1; j<=i; j++) { printf("* "); } } else { printf("*"); //in each line star at start and end position for(j = 1; j<=2*i-3; j++) { //print space to make hollow printf(" "); } printf("*"); } printf(""); }}
输出
Enter number of lines: 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
空心菱形
对于第一行和最后一行的菱形,它将打印一颗星星。对于其他行,它将在行的开头和结尾打印两颗星,并且在这两个开头之间会有一些空格。钻石有两部分。上半部和下半部。在上半部分,我们必须增加空间数量,而在下半部分,我们必须减少空间数量。这里,可以使用另一个名为 mid 的变量将行号分为两部分。
示例代码
#include int main() { int n, i, j, mid; printf("Enter number of lines: "); scanf("%d", &n); if(n %2 == 1) { //when n is odd, increase it by 1 to make it even n++;}mid = (n/2);for(i = 1; i<= mid; i++) { for(j = 1; j<=(mid-i); j++){ //print the blank spaces before star printf(" "); } if(i == 1) { printf("*"); } else { printf("*"); //in each line star at start and end position for(j = 1; j<=2*i-3; j++){ //print space to make hollow printf(" "); } printf("*"); } printf("");}for(i = mid+1; i<n; i++) { for(j = 1; j<=i-mid; j++) { //print the blank spaces before star printf(" "); } if(i == n-1) { printf("*"); } else { printf("*"); //in each line star at start and end position for(j = 1; j<=2*(n - i)-3; j++) { //print space to make hollow printf(" "); } printf("*"); } printf("
");}
输出
Enter number of lines: 15 * * * * * * * * * * * * * * * * * * * * * * * * * * * *
以上就是C程序打印空心金字塔和菱形图案的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1444256.html
微信扫一扫
支付宝扫一扫