当前位置: 首页 > news >正文

【打印菱形】

题目:打印一个空心菱形
//以菱形的中心点为坐标原点(0,0),当|x|+|y|==n/2时说明当前坐标是菱形边缘位置
//因为以菱形中心为原点,所以循环次数得折半 
//当输入n=7时,n/2=3需要打印的坐标点为(3,0),(-3,0),(1,2),(2,1)  等等
 

代码实现:

#include<stdio.h>
#include<math.h>

int main()
{
int n,x,y;
//输入菱形的行数 
scanf("%d",&n);
putchar('\n');
printf("打印%d行的空心菱形如下:\n",n);
n = n/2;
//循环范围 
//-(n/2)+n/2 = n; 
for(x = -n;x<=n;x++)
{
for(y = -n;y<=n;y++)
{
//打印菱形的条件  

            //abs(x) 代表的是x的绝对值,包含的头文件是<math.h>
if(abs(x)+abs(y)==n)
{
printf("*");
}
else
//不满足条件打印空格 
printf(" ");
}
//每打印完一行就换行 
putchar('\n');
}

return 0;

程序运行结果:

题目:打印实心菱形
//以菱形中心为坐标原点,所以循环的范围是-n/2到n/2
//属于菱形范围的是(x>=-n/2&&x<=n/2)和(y>=-n/2&&y<=n/2)

代码实现:

#include<stdio.h>
#include<math.h>

int main()

{
int x,y,n;
//输入行数 
scanf("%d",&n);
putchar('\n');

printf("打印%d行的实心菱形如下:\n",n);
//以坐标原点为菱形的中心,所以n = n/2 
n=n/2;
//因为要打印整个菱形,所以循环的范围需要是 -n 到 n  
for(x = -n;x<=n;x++)
{
for(y = -n;y<=n;y++)
{
//|x|+|y|<= n 是菱形内部的坐标范围 
if((abs(x)+abs(y))<=n)
{
printf("*");
}
else
{
printf(" ");
}
}
putchar('\n');
}
return 0;

程序运行结果:


http://www.dtcms.com/a/393204.html

相关文章:

  • XC7Z100-2FFG900I Xilinx AMD Zynq-7000 FPGA SoC
  • 成本价的SEO优化服务供应链
  • dock生命周期体验-生到死的命令
  • 软件测试方案-模板一
  • 防火墙WEB方式登录配置【HCL模拟】-学习篇(1)
  • Ceph用户管理与cephFS分布式存储实战
  • AgenticSeek:重新定义AI助手的边界 - 100%本地化智能代理系统深度解析
  • 701. 二叉搜索树中的插入操作
  • Spring AI(六)Tool Calling本地回调方法
  • 《2511系统分析师第二遍阅读总结3》
  • 【Linux】系统部分——线程同步与生产者消费者模型
  • No008:共建产业知识生态——DeepSeek如何助力中小企业数字化转型
  • 3.8 开发环境 - IntelliJ IDEA
  • Paimon系列:IDEA环境读写Paimon表
  • Java进阶教程,全面剖析Java多线程编程,插入线程,笔记10
  • 成品油加油站综合服务智慧监管平台! “智控油站,计量秒核查” + “数治加油,科技防猫腻”
  • C++编程学习(第34天)
  • 【数据结构与算法Trip第5站】动态规划
  • 防抖那些事儿
  • 【办公类-115-01】20250920信息员每周通讯上传之文字稿整理
  • 深入解析HotSpot解释器方法调用机制:从invokevirtual到方法入口
  • 用AI修复失语者的声音:大模型如何帮助渐冻人重新“说话”?
  • 【ICCV 2023】通过学习采样来学习上采样
  • 有效解决舍入误差的方法
  • count down 90 days
  • GEO完全指南 AI时代的内容优化新范式
  • Npass gate transistor是什么器件?
  • TensorRT-LLM中的in-flight batching(IFB)
  • kaggle-NeurIPS - Open Polymer Prediction 2025-0.069
  • Linux基础网络命令