用C语言打印任意大小的菱形图案

[学习笔记]用C语言打印任意一个菱形图案

仿真使用VScode进行编写编译

思路:运用顶点到中心点的距离进行设计。
废话不多说上代码!

代码如下:

#include <stdio.h>

int main()
{
    int removing_num,line_position,column_position,seal_position;    //距离,行,列,打印位置
   
    printf("请输入顶点到中心点的距离\n");
    scanf("%d",&removing_num);

    for(line_position = 0;line_position <=removing_num; line_position++)                 
    {
        for(column_position = removing_num - line_position; column_position>0; column_position--)             
        {
            printf(" ");                                       
        }
        for(seal_position = 0 ; seal_position <= line_position; seal_position++)                   
        {
            printf("*");
        }
        for(seal_position = line_position-1; seal_position >= 0 ; seal_position--)              
        {
            printf("*");
        }
        printf("\n");
    }
    for(line_position = 1 ; line_position <= removing_num; line_position++)
    {
        for(column_position = 1; column_position <= line_position; column_position++)
        {
            printf(" "); 
        }
        for(seal_position= 1; seal_position>line_position-removing_num; seal_position--)
        {
            printf("*");
        }
        for(seal_position = 1; seal_position>= line_position-removing_num+2 ; seal_position--)            
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}




——————————————————————————————————————————————————————————————————————————————————————————————————
简化代码:
#include <stdio.h>

int main()
{
    char n;
    int i;
    int j, k;

    printf("请输入到中心点的距离\n");
    scanf("%d",&n);

    for(i = 0;i <=n; i++)                
    {
        for(j = n - i;j>0;j--)             
            printf("*");                                        
        }
        for(k = 0 ;k<=i;k++)                  
        {
            printf("A");
        }
        for(k = i-1; k>=0 ; k--)               
        {
            printf("A");
        }
        printf("\n");
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
            printf("*"); 
        }
        for(k= 1;k>i-n;k--)
        {
            printf("A");
        }
        for(k = 1; k>=i-n+2 ; k--)              
        {
            printf("A");
        }
        printf("\n");
    }
    return 0;
}
---------------------------------------------------------------------------------------------------
运行结果如下:

请输入到中心点的距离
3
   *
  ***
 *****
*******
 *****
  ***
   *

# 学习目标:C语言循环与分支的掌握

# 学习内容:
1.熟练运用for循环,能分清楚运行的先后顺序
2.掌握C语言的基本语法
3.搭建C语言编译环境

# 学习时间:
1、 周一至周五早上 900—晚上830
2、 周六上午 9 :00-下午17:30

# 学习产出:
1CSDN 博客 12、作业1
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值