080426打印矩形

本文介绍两种使用C语言绘制菱形的方法。第一种通过两个循环分别绘制菱形的上半部分和下半部分;第二种定义专门的函数,利用坐标判断是否打印星号,实现更简洁。这两种方法适用于初学者理解循环及条件语句的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在屏幕上打印如下图形,要求使用循环语句.
提示:可以使用四个函数
      *
    *   *
  *       *
*           *
  *       *
    *   *
      *

#include <stdio.h>
void main()
{
   int x,y;
   //中上至至左下
   for(y=3;y>=0;y--)
   {
    for(x=0;x<=y;x++)
    {
     if(x==y)
     {
      printf("*   ");
     }
     else
     {
    printf("  ");
     }
   
    }

    //中上至右下
    for(x=2;x>=y;x=x-1)
    {
        if(x==y)
     {
      printf("* ");
     }
     else
     {
    printf("    ");
     }
    }
    printf("/n"); 
   }
//左上至中下
   for(y=1;y<=3;y++)
   {
    for(x=0;x<=y;x++)
    {
    if(x==y)
     {
      printf("*");
     }
     else
     {
    printf("  ");
     }
    }
    //右上至中下
    for(x=2;x>=y;x--)
    {
    if(x==y)
     {
      printf("   *");
     }
     else
     {
    printf("    ");
     }
  }
    printf("/n");
   }
  
}

 

 

 

方式二:

/***************************************************************************************
Author: Li Qingyang
Time:15/08/2008
Fun:
功能同上

intput:
output
***************************************************************************************/


#include <stdio.h>

void DrawRhombus(int n);


void main()
{
    int n;
    printf("Please input n:");
    scanf("%d", &n);
    //DrawRhombus(4);
    DrawRhombus(n);

}

void DrawRhombus(int m)
{
    int n = m - 1;
    int x, y;
    int nMax = n * 2;
    x = y = nMax;

 

    //x 的取值区间在[0, n)
    for (x = 0; x < n; x++)
    {
        for(y = 0; y <= nMax; y++)
        {
            if (y == x + n || y == -x + n)
            {
               
                printf("* ");
            }
            else
            {
                printf("  ");
            }
        }
        printf("/r/n");
    }


    //x 的取值区间在(n, nMax]
    for (x = n; x <= nMax; x++)
    {
        for(y = 0; y <= nMax; y++)
        {
            if (y == x - n || y == nMax - x + n)
            {
                printf("* ");
            }
            else
            {
                printf("  ");
            }
        }
        printf("/r/n");
    }
   
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值