文章目录

  • 前言
  • 一、方法一
  • 二、方法二
    • 注意
  • 总结

前言

本文介绍了两种用C语言画菱形的方法。当然两种方法有优有劣,究竟喜欢哪一种,全凭诸君自己。当然,我更偏向于方法二。


一、方法一

基于双重for循环的一般方法。
关键在于几个三角形的刻画。

#include <stdio.h>
int main()
{int n;scanf("%d", &n);for (int i = 0; i <= n / 2; ++i){for (int j = n / 2 - i; j > 0; --j){printf(" ");}for (int k = 0; k < 2 * i + 1; ++k){printf("*");}printf("\n");}for (int i = 1; i <= n - n / 2 ; ++i){for (int j = 1; j <= i; ++j){printf(" ");}for (int k = n - 2 * i; k > 0; --k){printf("*");}printf("\n");}return 0;
}

二、方法二

基于简单的数学方法–最简单的线性规划。

我们只需要选择合适的坐标原点(很重要,可以简化计算),然后计算出对应菱形各个边的表达式。

x + y <= n / 2
-x + y <= n / 2
-x - y <= n / 2
x - y <= n / 2

组合在一起就是

|x| + |y| <= n/2
#include <stdio.h>
#include <math.h>int main()
{int n = 0;scanf("%d", &n);for (int i = -n / 2; i <= n / 2;++i){for (int j = n / 2; j >= -n / 2; --j){if (fabs((double)i) + fabs((double)j) <= n / 2)printf("*");elseprintf(" ");}printf("\n");}return 0;
}

注意

对于方法二,如果你想要画空心菱形的话,只需要将判定条件改为fabs((double)i) + fabs((double)j) == n / 2,是不是很方便啊。但对于方法一的话,就要再次发挥你们的脑瓜子想了。至于具体如何写,这里我就不过多写了。

总结

以上就是全部内容。当然,这两种方法各有千秋。无论你喜欢哪一种方法,都不要吝啬您的赞哦!

C语言实现画菱形的数学方法VS一般方法相关推荐

  1. C语言程序绘制菱形,C语言画出菱形

    在学习C语言的时候学会了用for循环画一个三角形,画菱形的话尝试一 下在网上找了一些菱形的算法,都太复杂了,看到就头大,于是自己根据画 三角型的算法改编了一下就画出了菱形,如下: 当输入 3的时候: ...

  2. C语言跟随鼠标画方框,JS拖动鼠标画出方框实现鼠标选区的方法

    本文实例讲述了JS拖动鼠标画出方框实现鼠标选区的方法.分享给大家供大家参考.具体如下: 相当实用的一个JS技巧,拖动鼠标可画出一个方框,可作为一个选区的功能,可以用来画流程图,设计草图什么的,也可以作 ...

  3. ebnf描述c语言语句结构,EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则...

    Presentation on theme: "EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构:并用操作语义的方法描述对应的语义规则"- Pre ...

  4. 用java画菱形_【风马一族_Java】使用java,画出任意大小的菱形

    1 public classrhombic {2 3 public static voidmain(String[] args){4 5 /** 6 * scriber()画菱形的方法,参数 9 是指 ...

  5. 数学四大思想八大方法_数学八种思维方法

    数学八种思维方法2020-03-19 16:00:03文/董玉莹 数学八种思维方法:代数思想.数形结合.转化思想.对应思想方法.假设思想方法.比较思想方法.符号化思想方法.极限思想方法. 代数思想 这 ...

  6. c语言输出菱形13579,C语言怎样输出菱形

    C语言怎样输出菱形 C语言怎样输出菱形你知道吗?上网搜索一下,但网上的方法都是分为上下部分用两个嵌套for循环输出.下面是小编为大家带来的C语言怎样输出菱形的知识,欢迎阅读. C语言怎样输出菱形 适有 ...

  7. 数学的内容、方法和意义(转载)

    数学的内容.方法和意义 --丘成桐(在北大百周年校庆学术报告会上的演讲) 今天要讲的是数学的内容.方法和意义,这原是苏联人写的一本书的书名,和今天 的演讲内容借过来作为演讲的名称. 今天是北大百周年校 ...

  8. 再看数学——丘成桐:数学的内容、方法和意义

    http://www.qiji.cn/news/reading/2004/08/16/20040816135223.htm 丘成桐:数学的内容.方法和意义 http://www.qiji.cn/new ...

  9. R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线、对指定范围的数据拟合曲线

    R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线.对指定范围的数据拟合曲线 目录

最新文章

  1. 修复win7+ubuntu18.10双系统引导
  2. 【自适应(盲)均衡1】LMMSE、Godard、CMA常模、Sato等算法在信道均衡中的应用理论与MATLAB仿真
  3. NFS方式挂载rootfs的设置方法
  4. pat00-自测2. 素数对猜想 (20)
  5. 使用Python将字符串转换为格式化的日期时间字符串
  6. 华为怎么申请鸿蒙商标,华为已注册华为鸿蒙商标是怎么回事 华为鸿蒙商标注册...
  7. 如何导出共享文件夹的权限或转移
  8. 【广告技术】用张量分解预测广告库存,广告投放更可靠!
  9. import 和 export -- ES6
  10. js 将input、textarea、Select等控件替换成标签(span)
  11. 负载均衡算法 : 加权轮询
  12. 16级大一c语言考试题及答案,2013年计算机二级C语言上机试题十六及答案
  13. flatpak安装的firefox视频播放卡顿的解决方案
  14. android苹果模拟器哪个好,mac安卓模拟器哪个好用?为你推荐网易mumu模拟器
  15. 柠檬桉叶油和deet_秋蚊子更毒,化学博士评测驱蚊止痒产品,为宝宝选出最好用的3款...
  16. android 崩溃相关
  17. 基于本地代理的边下边播技术分析
  18. 【JZOJ B组】【NOI2002】贪吃的九头龙
  19. Vue packages version mismatch解决方案
  20. windows10下文件被占用,不能删除

热门文章

  1. 安装Windows10系统,磁盘MBR格式转换为GPT格式
  2. 从“恰当”的项目管理工具中,了解自己的缺点
  3. 「分治法」棋盘覆盖问题
  4. anaconda promote
  5. 如何以Java实现网页截图技术,根据URL得到网页快照
  6. [附源码]SSM计算机毕业设计基于SSM高考志愿填报系统JAVA
  7. 沧州师范学院计算机科学与技术专业怎么样,沧州师范学院有哪些院系和专业-什么专业比较好...
  8. 置顶助手(顶贴回贴软件)
  9. Drools WorkBench安装
  10. 下狠招解除WinXP中IE被劫持的方法