<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Mxne</title>
  
  <subtitle>Infinite Progress</subtitle>
  <link href="https://blog.mxne.cn/atom.xml" rel="self"/>
  
  <link href="https://blog.mxne.cn/"/>
  <updated>2024-04-02T06:41:56.000Z</updated>
  <id>https://blog.mxne.cn/</id>
  
  <author>
    <name>Mxne</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>数字媒体处理及应用</title>
    <link href="https://blog.mxne.cn/posts/390.html"/>
    <id>https://blog.mxne.cn/posts/390.html</id>
    <published>2024-04-02T06:23:11.000Z</published>
    <updated>2024-04-02T06:41:56.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="文本与文本处理"><a href="#文本与文本处理" class="headerlink" title="文本与文本处理"></a>文本与文本处理</h2><p>文本由一系列“字符”(character) 组成，每个字符均使用二进制编码表示。</p><p>文本在计算机中的处理过程是：</p><p><img src="E:/Blog/post-img/image-20230828133935298.png" alt="image-20230828133935298"></p><blockquote><p>字符：文字的基本元素是字母和符号，统称为“字符”(character)。</p><p>字符集：一组特定字符的集合。不同的字符集包含的字符数目与内容不同，如: 中文字符集、西文字符集、日文字符集等。</p><p>字符的编码：字符集中每个字符的二进位表示，称为该字符的编码或代码(code)；不同的字符其编码各不相同</p></blockquote><h3 id="西文字符集"><a href="#西文字符集" class="headerlink" title="西文字符集"></a>西文字符集</h3><h4 id="ASCII"><a href="#ASCII" class="headerlink" title="ASCII"></a>ASCII</h4><p>又名：<strong>美国标准信息交换码</strong>。基本的ASCII字符集共有<strong>128个字符</strong>，<strong>96个可打印字符</strong>（常用的字母、数字、标点符号等），<strong>32个控制字符</strong>。</p><h5 id="ASCII的编码和存储"><a href="#ASCII的编码和存储" class="headerlink" title="ASCII的编码和存储"></a>ASCII的编码和存储</h5><p>基本ASCIⅡ编码每个字符使用<strong>7个二进位进行编码</strong>，<strong>8个二进位来存储</strong>。每个字节中多余出来的一位（最高位）置为“<strong>0</strong>”，用作<strong>奇偶校验</strong>。</p><h3 id="汉字编码"><a href="#汉字编码" class="headerlink" title="汉字编码"></a>汉字编码</h3><h4 id="GB2312"><a href="#GB2312" class="headerlink" title="GB2312"></a>GB2312</h4><p><img src="E:/Blog/post-img/image-20230901165417044.png" alt="image-20230901165417044"></p><p>每一个GB2312汉字使用<strong>16位(2个字节)表示</strong>。<u>为了与ASCI字符相区别</u>，每个字节的<strong>最高位均为“1”</strong>，这种高位均为1的双字节汉字编码就称为GB2312汉字的“机内码”（又称“内码”）。【均为简体字】</p><p><img src="E:/Blog/post-img/image-20230901165047873.png" alt="image-20230901165047873"></p><h4 id="GBK"><a href="#GBK" class="headerlink" title="GBK"></a>GBK</h4><p>GBK是我国1995年发布的，全称为《汉字内码扩充规范》，他一共有<strong>21003个汉字和883个图形符号</strong>，除了GB2312中的全部汉字和符号之外，还收录了<u>包括繁体字在内的大量汉字和符号</u>。【<strong>向下兼容GB2312</strong>】</p><p>第一个字节最高位必须为“1”，第二个字节子高位可以是“1”也可以是“0”。</p><p><img src="E:/Blog/post-img/image-20230901165847523.png" alt="image-20230901165847523"></p><h4 id="GB18030"><a href="#GB18030" class="headerlink" title="GB18030"></a>GB18030</h4><p>目的：<u>为了保护我国已有的大量信息资源，既能与UCS/Unicode编码标准接轨，又能向下兼容GB2312和GBK汉字编码标准。</u>共有27000多个汉字（收录字符最多）</p><p>不等长编码</p><h4 id="UCS-Unicode"><a href="#UCS-Unicode" class="headerlink" title="UCS/Unicode"></a>UCS/Unicode</h4><p>目的：为了能实现全球所有不同语言文字统一编码的国际编码标准</p><p><img src="E:/Blog/post-img/image-20230901170711018.png" alt="image-20230901170711018"></p><p><img src="E:/Blog/post-img/image-20230901173127448.png" alt="image-20230901173127448"></p><p>计算机中文字符号可采用不同的编码标准，计算机生成和处理的数字文档中对采用何种编码一般会有说明（标志）<br>PC和智能手机都能支持多国文字（包括汉字）的的输入、输出、存储、处理、显示和传输，但默认采用哪种语言文字和编码标准，可在操作系统和APP中设置或说明<br>不同操作系统、不同编程语言和不同APP默认采用的字符集及其编码并不一致，相互间进行通信和处理时，往往需要进行编码转换，若出错则会出现乱码。</p><blockquote><p>区位码 + 2020H = 国标码</p><p>国标码 + 8080H = 机内码</p><p>区位码 + A0A0H = 机内码</p><h5 id="区位码"><a href="#区位码" class="headerlink" title="区位码"></a>区位码</h5><p>GB2312将所有的汉字编入一个94×94的二维表中，行和列共同定位一个字，行就是区，列就是位，合并就是区位码。区位码是一个四位的十进制数，前两位叫区码，后两位叫位码。</p><p>区位码可以表示某个具体的汉字，但是无法与ASC码进行兼容。</p><h5 id="汉字的国标码（交换码）"><a href="#汉字的国标码（交换码）" class="headerlink" title="汉字的国标码（交换码）"></a>汉字的国标码（交换码）</h5><p>GB2312不仅仅包含中文汉字，也包含各种那个字母数字符号，与ASCII编码中的字母数字符号重复，故覆盖ASCII中符号数字字母部分，将其中的符号重新编入GB2312中，而对于ASCII中前32个控制字符继续沿用，所以保留前32字符，就需要将汉字编码向后偏移32，对应十六进制就是20，故：区位码+2020H=国标码</p><h5 id="汉字的机内码"><a href="#汉字的机内码" class="headerlink" title="汉字的机内码"></a>汉字的机内码</h5><p>汉字机内码，又称“汉字ASCII码”，简称“内码”，国标码覆盖了ASCII码，但是计算机内部仍然存在ASC码，所以某些汉字的国标码仍有可能会和ASC码进行重复，重复的后果会产生乱码，所以不应覆盖，而是要兼容ASCII码，故根据ASCII码最高位通常为0的特点，将国标码每个字节的最高位从0换成1与ASCII码进行区分，故：国标码+8080H=机内码</p></blockquote><h3 id="文字符号的输入"><a href="#文字符号的输入" class="headerlink" title="文字符号的输入"></a>文字符号的输入</h3><p><img src="E:/Blog/post-img/image-20230902100322100.png" alt="image-20230902100322100"></p><h4 id="键盘输入"><a href="#键盘输入" class="headerlink" title="键盘输入"></a>键盘输入</h4><p>分类：</p><ul><li>数字编码：电报码、区位码</li><li>字音编码：26键</li><li>字形编码：五笔</li><li>形音编码</li></ul><p><strong>汉字的输入码不是唯一的，汉字的机内码是唯一的。</strong></p><h4 id="联机手写输入"><a href="#联机手写输入" class="headerlink" title="联机手写输入"></a>联机手写输入</h4><p>优点：</p><ul><li>自然，流畅</li><li>小型化，适合移动计算</li></ul><p>不足：</p><ul><li>别速度和正确性还需提高</li><li>书写要求还要降低</li></ul><h4 id="语言输入"><a href="#语言输入" class="headerlink" title="语言输入"></a>语言输入</h4><p>优点：</p><ul><li>自然，方便，适合移动计算</li></ul><p>不足：</p><ul><li>对说话人、说话方式、说话内容的适应能力要改进</li><li>识别速度和正确性还需进一步提高</li></ul><h3 id="文本的分类"><a href="#文本的分类" class="headerlink" title="文本的分类"></a>文本的分类</h3><p><strong>（1）按照是否具有排版格式∶</strong> <strong>简单文本</strong> <strong>和</strong> <strong>丰富格式文本</strong> <strong>。</strong></p><p><strong>（2）按照文本内容的组织方式∶</strong> <strong>线性文本</strong> <strong>和</strong> <strong>超文本</strong> <strong>。</strong></p><h4 id="简单文本（纯文本）"><a href="#简单文本（纯文本）" class="headerlink" title="简单文本（纯文本）"></a>简单文本（纯文本）</h4><p>简单文本是由一连串表达正文内容的字符（包括汉字）的编码所组成，它几乎不包含任何格式信息和结构信息。其文件的后缀名为<code>.txt</code><br>简单文本的文件体积小，通用性好，几乎所有的文字处理软件都能识别和处理，但是<u>它没有字体、字号的变化，不能插入图片、表格，也不能建立超链接。</u>Windows记事本采用的是UTF-8编码。</p><h4 id="丰富格式文本"><a href="#丰富格式文本" class="headerlink" title="丰富格式文本"></a>丰富格式文本</h4><p>有字体字号等属性变化、设置了段落和页面排版格式的文本称为“丰富格式文本”。<br>丰富格式文本中，除了<strong>正文</strong>内容之外，还使用了许多“<strong>标记</strong>“来描述字符的属性和格式的设置以及插入图、表、公式、表格等等。【组成：正文+标记】</p><p>常见标记语言：HTML（超文本标记语言）、XML（可扩展标记语言）</p><p><strong>不同软件制作的丰富格式文本其文件扩展名各不相同</strong>。例如.doc、.docx、.html、.pdf、rtf、<strong>hlp（帮助文件）</strong>一般并<strong>不兼容</strong>，需要使用不同的APP进行处理。</p><h4 id="超文本"><a href="#超文本" class="headerlink" title="超文本"></a>超文本</h4><p>传统纸质文本内容的组织是线性的，而超文本概念是对传统文本的一种扩展。<u>除了顺序阅读方式外，还可以通过文本内部所设置的链接进行跳转、导航、回溯等操作。</u><br>超文本采用<strong>网状结构</strong>来组织信息，文本中的各个部分按照其内容的逻辑关系互相链接。WWW网页就是典型<br>的超文本结构。</p><p><strong>超链是有向的</strong>，起点位置称为<strong>涟源</strong>(HTML文档中称为<strong>锚</strong>)，目的地称为<strong>链宿</strong>。涟源（锚）和链宿使用TML标记语言指出。</p><p><strong>超文本属于丰富格式文本。</strong></p><h3 id="文本的编辑、排版与处理"><a href="#文本的编辑、排版与处理" class="headerlink" title="文本的编辑、排版与处理"></a>文本的编辑、排版与处理</h3><h4 id="文本的编辑"><a href="#文本的编辑" class="headerlink" title="文本的编辑"></a>文本的编辑</h4><p>目的：确保文本内容正确无误。</p><p>操作：对字、词、句和段落进行添加、删除、修改等操作。</p><p>MS Word的功能：</p><ul><li>在文本的任何位置都可以<strong>插入</strong>新的文字</li><li>从文本的任何位置都可以<strong>删除</strong>不需要的文字</li><li>将一段文字从一处<strong>移动</strong>到另一处</li><li>将一段文字从一处<strong>复制</strong>到另一处</li><li>在文本中自动<strong>查找</strong>指定的词语</li><li>用一个词语自动<strong>替换</strong>文本中指定的词语</li></ul><h4 id="文本的排版"><a href="#文本的排版" class="headerlink" title="文本的排版"></a>文本的排版</h4><p>目的：<strong>使文本清晰、美观、便于阅读</strong></p><p>操作内容：对文本中的字符、段落乃至整篇文章的格式进行设计和调整，分成3个层次：</p><ul><li>对<strong>字符</strong>格式进行设置</li><li>对<strong>段落</strong>格式进行设置</li><li>对<strong>文档</strong>页面进行格式设置</li></ul><h4 id="文本的处理"><a href="#文本的处理" class="headerlink" title="文本的处理"></a>文本的处理</h4><p>对文木中所含文字信息的形音义等进行分析和处理。例如：字数统计、文语转换、文摘生成、文本检索等。</p><ul><li>字数统计，词频统计，简/繁体相互转换，汉字/拼音相互转换</li><li>词语排序，词语错误检测，文句语法检查</li><li>自动分词，词性标注，词义辨识，大陆/台湾术语转换</li><li>关键词提取，文摘自动生成，文本分类</li><li>文本检索（<u>关键词检索、全文检索</u>），文本过滤</li><li>文语转换（语音合成）</li><li>文种转换（机器翻译）</li><li>篇章理解，自动问答，自动写作等</li><li>文本压缩，文本加密，文本著作权保护</li></ul><h5 id="文本检索"><a href="#文本检索" class="headerlink" title="文本检索"></a>文本检索</h5><ul><li>关键词检索</li><li>全文检索：搜索引擎</li></ul><blockquote><p>文本检索存在准确性问题，因此，检索结果并非全部都是用户想要的。</p></blockquote><h3 id="文本的展现"><a href="#文本的展现" class="headerlink" title="文本的展现"></a>文本的展现</h3><p>文本展现方式：</p><ul><li>打印输出：纸质</li><li>屏幕显示：电子书</li></ul><p>文本展现的过程：</p><ol><li><p>对文本的格式描述进行解释。</p></li><li><p>生成文字和图表的映像（bitmap）。</p></li><li><p>传送到显示器或打印机输出。</p></li></ol><h5 id="字库"><a href="#字库" class="headerlink" title="字库"></a>字库</h5><p>定义：同一种字体的所有字符的形状描述信息的集合。</p><p>2种不同的字库</p><ul><li>点阵描述（计算存储空间）</li><li>轮廓描述(Truetype)</li></ul><blockquote><p>字体VS字库：不同的字体（宋体、仿宋、楷体、黑体等）对应不同的字库</p><p>字符集VS字库：在同一个字符集下，文本的输出所使用的字库不同</p></blockquote><h2 id="图像与图形"><a href="#图像与图形" class="headerlink" title="图像与图形"></a>图像与图形</h2><p>计算机中的“图”按其<strong>生成方法</strong>可以分成两类：取样图像（或点阵图像或位图图像）和（矢量）图形。</p><h3 id="图像"><a href="#图像" class="headerlink" title="图像"></a>图像</h3><h4 id="图像的获取"><a href="#图像的获取" class="headerlink" title="图像的获取"></a>图像的获取</h4><p>从<u><strong>现实世界</strong></u>中获得数字图像的过程称为图像的“获取”。常用的图像获取设备：手机、扫描仪、数码相机、监控摄像头等。</p><h5 id="图像获取过程⭐"><a href="#图像获取过程⭐" class="headerlink" title="图像获取过程⭐"></a>图像获取过程⭐</h5><p>图像获取的过程需要使用光学、超声波或X射线等生成景物的映像（模拟信号）并进行数字化，处理步骤：</p><ol><li>扫描：将景物映像划分为M×N个网格，每个网格称为一个取样点。从而将景物映像转换为M×N个取样点构成的阵列。</li><li>分色：将每个取样点的颜色分解成红、绿、蓝三基色(R、G、B),若生成灰度或黑白图像则不进行分色处理。</li><li>取样：测量每个取样点的每个分量（基色）的亮度（也称为“灰度”值）</li><li>量化：对取样点每个分量的亮度值进行A/D转换，即把模拟量使用数字量来表示。(8位-12位二进制正整数)</li></ol><p><img src="E:/Blog/post-img/image-20230904153304697.png" alt="image-20230904153304697"></p><h4 id="图像的表示"><a href="#图像的表示" class="headerlink" title="图像的表示"></a>图像的表示</h4><p>一幅图像由M(列)×N(行)个取样点组成，每个取样点是组成取样图像的基本单位，称为像素。</p><p><img src="E:/Blog/post-img/image-20230905101033731.png" alt="image-20230905101033731"></p><h4 id="图像的主要参数"><a href="#图像的主要参数" class="headerlink" title="图像的主要参数"></a>图像的主要参数</h4><ol><li>图像大小/图像分辨率：也称为图像分辨率，用水平分辨率 x 垂直分辨率表示。</li></ol><blockquote><p>注意：垂直分辨率：矩阵的行数；水平分辨率：矩阵的列数</p></blockquote><ol><li><p>位平面数：即<u>像素的颜色分量的数目</u>。</p><ul><li>黑白或灰度图像只有一个位平面</li><li>彩色图像有3个或更多的位平面</li></ul></li><li><p>像素深度：指<u>每个像素用多少个二进位来表示</u>，它是像素的所有颜色分量的二进位数目之和。像素深度决定了该图像可表示的不同颜色（或不同亮度）的最大数目。</p><ul><li>单色图像若像素深度是8位，则不同亮度等级的总数为 $2^{8}=256$。</li><li>R、G、B三基色组成的彩色图像，若3个分量的像素位数都是8位，则该图像的像素深度为24，不同颜色数目最多为：$x^{8+8+8}=x^{24}$ 【<strong>真彩色图像24位</strong>】</li></ul></li><li><p>颜色空间类型：指彩色图像所使用的颜色描述方法，也叫颜色模型。【以下颜色模型可以互相转换】</p><ul><li>显示器 —–→ RGB模型（红、绿、蓝）</li><li>彩色打印机 —–→ CMYK模型（青、品红、黄、黑）</li><li>图像编辑软件 —–→ HSB模型（色彩、饱和度、亮度)</li><li>PAL制彩色电视 —–→ YUV模型(Y亮度信号，UV两种色度信号)</li></ul></li></ol><p><img src="E:/Blog/post-img/image-20230905103355175.png" alt="image-20230905103355175"></p><h4 id="数字图像的数据量"><a href="#数字图像的数据量" class="headerlink" title="数字图像的数据量"></a>数字图像的数据量</h4><p>数字图像数据量的计算公式（以<strong>字节</strong>为单位）：【未压缩】</p><p><code>图像数据量 = 水平分辨率 × 垂直分辨率 × 像素深度 / 8</code></p><p>几种常用格式的图像的数据量（未压缩)：</p><p><img src="E:/Blog/post-img/image-20230905104059113.png" alt="image-20230905104059113"></p><p>压缩之后数字图像的数据量计算（以字节为单位）：【压缩后】</p><p><code>图像数据量 = (水平分辨率 × 垂直分辨率 × 像素深度 / 8) / 压缩比</code></p><h4 id="数字图像的压缩"><a href="#数字图像的压缩" class="headerlink" title="数字图像的压缩"></a>数字图像的压缩</h4><h5 id="图像数据压缩的必要性"><a href="#图像数据压缩的必要性" class="headerlink" title="图像数据压缩的必要性"></a>图像数据压缩的必要性</h5><ul><li>节省存储数字图像所需要的存储器容量</li><li>提高图像的传输速度，减少通信费用，</li></ul><h5 id="图像数据压缩的两种类型"><a href="#图像数据压缩的两种类型" class="headerlink" title="图像数据压缩的两种类型"></a>图像数据压缩的两种类型</h5><ul><li>无损压缩：用压缩后的数据还原出来的图像<strong>没有任何误差</strong>【完美还原】</li><li>有损压缩：用压缩后的数据还原出来的图像<strong>有一定的误差</strong></li></ul><h5 id="压缩编码方法的评价标准⭐"><a href="#压缩编码方法的评价标准⭐" class="headerlink" title="压缩编码方法的评价标准⭐"></a>压缩编码方法的评价标准⭐</h5><ul><li>压缩倍数的高低（压缩比大小）</li><li>重建图像的质量（有损压缩时）</li><li>压缩算法的复杂程度</li></ul><h4 id="图像文件格式⭐"><a href="#图像文件格式⭐" class="headerlink" title="图像文件格式⭐"></a>图像文件格式⭐</h4><p><img src="E:/Blog/post-img/image-20230905112000197.png" alt="image-20230905112000197"></p><h5 id="BMP格式"><a href="#BMP格式" class="headerlink" title="BMP格式"></a>BMP格式</h5><ul><li>BMP图像格式是<strong>Windows</strong>操作系统下使用的一种标准图像格式，<strong>几乎所有的Windows应用软件都支持。</strong>支持单色、16色、256色、真彩色图像。</li><li>一个文件一幅图像，可以进行无损压缩，也可不压缩。</li></ul><h5 id="TIF格式"><a href="#TIF格式" class="headerlink" title="TIF格式"></a>TIF格式</h5><p><strong>大量用于扫描仪和桌面出版</strong></p><h5 id="GIF格式"><a href="#GIF格式" class="headerlink" title="GIF格式"></a>GIF格式</h5><ul><li>颜色数目<strong>不超过256色</strong>，适合用作插图、剪贴画等色彩数要求不高的场合，文件特别小，适合网络传输。</li><li>GIF图像格式能支持<strong>动画</strong>、<strong>透明背景</strong>(JPEG不支持)。</li><li>GIF图像格式具有累进显示功能，适合网络浏览器观看。</li></ul><h5 id="JPEG格式"><a href="#JPEG格式" class="headerlink" title="JPEG格式"></a>JPEG格式</h5><ul><li>JPEG是静止图像数据压缩编码的<strong>国际标准</strong>，采用JPEG标准的图像文件扩展名是jpg。【大多有损】</li><li>JPEG特别适合各种连续色调的彩色或灰度图像，在计算机和<strong>数码相机</strong>中已得到广泛应用。</li><li>JPEG的最新标准是JPEG2000(图像文件扩展名是.jp2),它采用<strong>更先进的技术</strong>，可取得更好的效果，目前在医学图像处理中使用。</li></ul><h5 id="PNG格式"><a href="#PNG格式" class="headerlink" title="PNG格式"></a>PNG格式</h5><p>90年代中期由W3C开发，主要在互联网上使用。<br>保留了GIF文件的特性。<br>增加新功能，如支持每个像素为48比特的真彩色图像，支持每个像素为16比特的灰度图像，添加通道等。</p><h5 id="Webp格式"><a href="#Webp格式" class="headerlink" title="Webp格式"></a>Webp格式</h5><p>Google公司推出的图像文件格式。<br>压缩率比JPEG和PNG显著提高，网页平均加载时间大约可以减少1/3。<br>WebP格式图像编码时间比JPEG格式图像要长得多。<br>尚未得到广泛支持。</p><h4 id="数字图像处理"><a href="#数字图像处理" class="headerlink" title="数字图像处理"></a>数字图像处理</h4><h5 id="主要目的"><a href="#主要目的" class="headerlink" title="主要目的"></a>主要目的</h5><ol><li>提高图像的视觉质量</li><li>恢复与重建有失真和畸变的图像</li><li>图像分析，包括：图像的分类、识别和理解等</li><li>图像数据的变换、编码和数据压缩</li><li>图像的存储、管理与检索</li><li>图像内容与知识产权的保护</li></ol><h5 id="数字图像处理软件"><a href="#数字图像处理软件" class="headerlink" title="数字图像处理软件"></a>数字图像处理软件</h5><ul><li>Word和PowerPoint具有基本的图像编辑功能</li><li>Windows附件中的“画图”软件</li><li>微软Office工具中的Picture Manager</li><li>ACD System公司的ACDSee32</li><li><strong>Adobe PhotoShop</strong></li></ul><h5 id="PS主要功能包括"><a href="#PS主要功能包括" class="headerlink" title="PS主要功能包括"></a>PS主要功能包括</h5><ul><li>图像的控制与显示</li><li>图像区域的选择</li><li>图像的编辑操作</li><li>图像的滤镜操作</li><li>绘图功能</li><li>文字编辑功能</li><li>图层操作</li></ul><h3 id="图形"><a href="#图形" class="headerlink" title="图形"></a>图形</h3><p>通过计算机和软件对景物的结构、形状与外貌进行描述（称为“<strong>建模</strong>“），然后根据该描述和选定的观察位置及光线状况，生成该景物的图形称为“<strong>绘制</strong>“)。计算机图形也称为<strong>计算机合成图像/矢量图形</strong>。</p><h4 id="计算机绘图过程"><a href="#计算机绘图过程" class="headerlink" title="计算机绘图过程"></a>计算机绘图过程</h4><ol><li><p>建模：首先是使用计算机描述景物的结构、形状与外貌，然后再根据其描述和用户观察景物的位置及光线情况，生成该景物的图像并在屏幕上或打印机绘图仪上输出，景物在计算机内的描述即为该景物的模型，通常需要使用专门的软件来完成：</p></li><li><p>绘制：计算机根据景物的模型生成其图像的过程称为“绘制”，也叫做图像合成，这是借助计算机中的绘制软件和显卡实现的。</p></li></ol><p><img src="E:/Blog/post-img/image-20230905114514681.png" alt="image-20230905114514681"></p><h4 id="景物的两类建模方法"><a href="#景物的两类建模方法" class="headerlink" title="景物的两类建模方法"></a>景物的两类建模方法</h4><ol><li>规则形体（如工业产品等）<br>可以使用各种几何元素（点、线、面、体等）以及表面材料的性质进行描述，所建立的模型称为“<strong>几何模型</strong>”。</li><li>不规则形体（如自然产物或现象）<br>需要找出它们的结构和生成规律，并使用相应的算法来描述其规律（如描述树木、花草、烟火、毛发、山脉等），这种模型称为“<strong>过程模型</strong>”或“<strong>算法模型</strong>”。</li></ol><p><img src="E:/Blog/post-img/image-20230905115026374.png" alt="image-20230905115026374"></p><h4 id="计算机图形的应用"><a href="#计算机图形的应用" class="headerlink" title="计算机图形的应用"></a>计算机图形的应用</h4><ul><li>计算机铺助设计(CAD)和计算机辅助制造(CAM)。</li><li>利用计算机生成各种地形图、交通图、天气图、海洋图、石油开采图等。</li><li>作战指挥和军事训练。</li><li>计算机动画和计算机艺术。</li><li>其它：电子出版、数据处理、工业监控、辅助教学、软件工程等。</li></ul><h4 id="矢量绘图软件"><a href="#矢量绘图软件" class="headerlink" title="矢量绘图软件"></a>矢量绘图软件</h4><ol><li>专业绘图软件：<br>AutoCAD、PROTEL和CAXA电子图板（机械、建筑等）<br>MAPInfo、ARCInfo、SuperMap GIS(地图、地理信息系统)</li><li>办公与事务处理、平面设计、电子出版等使用的绘图软件：<br>Corel公司的CorelDraw,<br>Adobe公司的lllustrator,<br>Macromedia公司的FreeHand,<br>微软公司的Microsoft Visio等</li><li>MS Office中内嵌的绘图软件：<br>Word和PowerPoint中的绘图功能（简单的二维图形)</li></ol><h2 id="数字音频及应用"><a href="#数字音频及应用" class="headerlink" title="数字音频及应用"></a>数字音频及应用</h2><p>声音(sound)由振动产生，通过空气等介质进行传播。声音是一种波，它由许多不同频率的谐波组成，谐波的频率范围称为声音的“带宽”。</p><p>人耳可听见的声音(<strong>20Hz~20kHz</strong>)在信息技术中称为音频信号，简称音频(audio)。</p><p>两种音频：</p><ul><li><strong>话音或语音</strong>(speech),专指人的说话声音，带宽仅为<strong>300~3400Hz</strong></li><li><strong>全频带声音</strong>（如音乐声、风雨声、汽车声等），其带宽可达到<strong>20Hz~2OkHz</strong></li></ul><h3 id="数字音频的获取"><a href="#数字音频的获取" class="headerlink" title="数字音频的获取"></a>数字音频的获取</h3><p>音频是<strong>模拟信号</strong>。为了使用计算机进行处理，必须将它转换成二进制编码表示的形式。</p><p>这个过程称为音频信号的数字化。数字化的步骤：</p><ol><li><strong>取样</strong>：把时间上连续的音频信号离散成不连续的一系列的样本，<u>取样频率<strong>不应低于</strong>音频信号<strong>最高频率</strong>的<strong>两倍</strong></u>。<u><strong>语音</strong>取样频率一般为<strong>8-16kHz</strong>,<strong>全频带音频</strong>的取样频率应在<strong>40kHz以上</strong>。</u></li><li><strong>量化</strong>：取样得到的每一个样本一般使用8、12、14或16位二进制整数表示（称为“量化精度”），<strong>精度越高，声音保真度越好，噪音越低。</strong>【A/D转换】</li><li><strong>编码</strong>：经过取样量化得到的数据还必须进行数据压缩，以减少数据量，并按照某种格式对数据进行组织，以便计算机存储处理与传输。</li></ol><p><img src="E:/Blog/post-img/image-20230905133224116.png" alt="image-20230905133224116"></p><h4 id="数字音频的获取设备"><a href="#数字音频的获取设备" class="headerlink" title="数字音频的获取设备"></a>数字音频的获取设备</h4><p>数字音频获取设备包括<strong>麦克风</strong>（话筒）和<strong>声卡</strong>。</p><p>麦克风（话筒）的作用是将<strong>声波转换成电信号</strong>，然后再由声卡进行数字化。</p><p>声卡既负责音频信号的获取，也负责音频信号的重建，它控制并完成声音的输入输出。</p><h5 id="声卡"><a href="#声卡" class="headerlink" title="声卡"></a>声卡</h5><p>主要功能</p><ul><li>音频信号的获取与数字化</li><li>音频信号的重建与播放</li><li>MIDI声音的输入</li><li>MIDI声音的合成与播放等</li></ul><p>声卡以<strong>数字信号处理器(DSP)</strong>为核心，DSP是一种专用的微处理器，它在完成数字音频的编码、解码、MIDI声音的合成以及音频编辑操作中起着重要作用。</p><p><img src="E:/Blog/post-img/image-20230905133712703.png" alt="image-20230905133712703"></p><h3 id="数字音频的输出"><a href="#数字音频的输出" class="headerlink" title="数字音频的输出"></a>数字音频的输出</h3><p>计算机输出声音的过程通常分成两步：</p><ul><li>重建：把音频信号从数字形式转换成模拟信号形式，由声卡完成。</li><li>播放：将模拟音频信号经处理和放大后送到音箱（扬声器）。</li></ul><p>声音的<strong>重建</strong>是音频信号数字化的逆过程，分成三个步骤：⭐</p><ol><li>解码：把压缩编码后的数字音频恢复到压缩编码前的状态。</li><li>数模转换：把音频样本从数字量转换成模拟量。</li><li>插值：把时间上离散的音频信号转换成在时间上连续的模拟音频信号。</li></ol><h4 id="音响"><a href="#音响" class="headerlink" title="音响"></a>音响</h4><ol><li>普通音箱：接收的是重建的<strong>模拟声音信号</strong>。</li><li>数字音箱：直接接<strong>收数字声音信号</strong>，失真更小。</li></ol><h3 id="数字音频的主要参数"><a href="#数字音频的主要参数" class="headerlink" title="数字音频的主要参数"></a>数字音频的主要参数</h3><ol><li>取样频率<ul><li><strong>语音</strong>的取样频率低，一般为8k~16kHz</li><li><strong>全频带</strong>声音（如音乐）取样频率高，一般44.1k~48kHz</li></ul></li><li>量化位数：通常是8、12或16位</li><li>声道数目：单声道为1，双声道为2【立体声=双声道】</li><li>码率（比特率）：每秒钟的数据量、</li></ol><h3 id="数字音频的码率"><a href="#数字音频的码率" class="headerlink" title="数字音频的码率"></a>数字音频的码率</h3><p>码率：指的是<strong>每秒钟</strong>有多少二进位</p><p><strong>未压缩</strong>时数字音频的码率计算公式：</p><p><code>码率 = 取样频率 × 量化位数 × 声道数（单位：bit/s)</code></p><p>两种常用数字音频的主要参数：⭐【背】</p><p><img src="E:/Blog/post-img/image-20230905135437702.png" alt="image-20230905135437702"></p><p><strong>压缩后</strong>数字音频的码率为：</p><p><code>压缩后的码率 = 未压缩时的码率 / 压缩比</code></p><p>音频的数据量为：</p><p><code>音频的数据量 = 码率 x 播放时间</code></p><ul><li><p>CD唱片的码率=44.1kHz×16bits×2=176.4KB/s</p></li><li><p>CD唱片1小时的数据量=176.4KB/s×60×60=635040KB=635MB</p></li></ul><h3 id="音频文件格式"><a href="#音频文件格式" class="headerlink" title="音频文件格式"></a>音频文件格式</h3><p><img src="E:/Blog/post-img/image-20230905140107462.png" alt="image-20230905140107462"></p><h3 id="音频常用的压缩编码"><a href="#音频常用的压缩编码" class="headerlink" title="音频常用的压缩编码"></a>音频常用的压缩编码</h3><div class="table-container"><table><thead><tr><th>名称</th><th>声道数目</th><th>主要应用</th></tr></thead><tbody><tr><td>MPEG-1 audio层1</td><td>2</td><td>数字盒式录音带</td></tr><tr><td>MPEG-1 audio层2</td><td>2</td><td>DAB、VCD</td></tr><tr><td>MPEG-1 audio层3</td><td>2</td><td>Internet、MP3</td></tr><tr><td>MPEG-2 audio</td><td>5.1，7.1</td><td>同MPEG-1</td></tr><tr><td>Dolby AC-3</td><td>5.1，7.1</td><td>DVD、DTV、家庭影院</td></tr></tbody></table></div><h3 id="数字音频的编辑【考点mini】"><a href="#数字音频的编辑【考点mini】" class="headerlink" title="数字音频的编辑【考点mini】"></a>数字音频的编辑【考点mini】</h3><p>Windows附件中娱乐类的“录音机”程序是一个非常简单的数字音频编辑器，具有如下功能：</p><ul><li>录制音频</li><li>编辑音频</li><li>声音的效果处理</li><li>格式转换</li><li>播放音频（只能播放wav格式的音频文件）</li></ul><h3 id="数字音频的播放软件【考点mini】"><a href="#数字音频的播放软件【考点mini】" class="headerlink" title="数字音频的播放软件【考点mini】"></a>数字音频的播放软件【考点mini】</h3><p>Windows操作系统捆绑了一个应用软件，称为Vindows媒体播放器（简称“WMP”),该软件可以播放音频、视频文件也可以显示图片。该软件播放的音频文件格式包括MP3、WMA、WAV、MIDI等，也可以播放CD和DVD光盘。还具有管理功能，支持播放列表，支持从CD光盘上抓取音轨复制到硬盘，支持刻录CD光盘，支持与便携式音乐设备进行同步。</p><h3 id="语音识别"><a href="#语音识别" class="headerlink" title="语音识别"></a>语音识别</h3><p>将人的说话声音转换成相应的文字，这需要计算机自动识别出语音信号中的单词和语汇，甚至理解其语义（内容）。</p><p>应用：语音拨号、语音导航、设备操作控制、语音文档检索、听写数据录入、计算机同声翻译等。</p><p>几种不同复杂程度的语音识别技术：</p><ol><li>孤立语音/连续语音识别</li><li>小词汇量/大词汇量语音识别</li><li>特定人/非特定人语音识别</li></ol><h3 id="语音合成"><a href="#语音合成" class="headerlink" title="语音合成"></a>语音合成</h3><p>计算机合成音频就是计算机模仿人说话或演奏音乐。</p><p>计算机合成音频有两类：</p><h4 id="计算机合成话音（语音）"><a href="#计算机合成话音（语音）" class="headerlink" title="计算机合成话音（语音）"></a>计算机合成话音（语音）</h4><p>计算机模仿人把一段文字朗读出来，即把文字转换为说话声音（简称为<strong>文语转换【TTS】</strong>)。</p><p>应用：有声查询、文稿校对、语言学习、语音秘书、自动报警、残疾人服务等。</p><h5 id="文语转换-TTS"><a href="#文语转换-TTS" class="headerlink" title="文语转换(TTS)"></a>文语转换(TTS)</h5><p>按照文本（书面语言）进行语音合成的过程</p><p>文语转换过程原理上分成三步：</p><ol><li>文本分析：对文本进行分析，判断每一个字的正确读音，将文字序列转换成一串发音符号（如国际音标或汉语拼音)。</li><li>韵律分析：根据文句的结构、位置、使用的标点符号以及上下文等，确定发音时语气的变换以及读音的轻重缓急，这些都由一组韵律控制参数来进行控制。</li><li>语音合成：根据发音标注，从语音库中取出相应的语音基元，按照韵律控制参数的要求，利用特定的语音合成技术对语音基元进行调整和修改，最终合成出符合要求的流畅自然的语音。</li></ol><p><img src="E:/Blog/post-img/image-20230909121245173.png" alt="image-20230909121245173"></p><h4 id="计算机合成音乐-MIDI"><a href="#计算机合成音乐-MIDI" class="headerlink" title="计算机合成音乐(MIDI):"></a>计算机合成音乐(MIDI):</h4><p>计算机模拟各种乐器发声并按照乐谱演奏音乐。</p><p>应用：计算机作曲、配器等。</p><p>计算机合成音乐需要三个要素：乐器、乐谱和“演奏员”。MIDI文件（后缀为.mid或.midi)相当于乐谱，媒体播放器相当于演奏员，在计算机中它需要发送指令到声卡音乐合成器中，音乐合成器会将指令进行合成模拟乐器发声。</p><p>播放：由PC机中的声卡合成，由Windows的媒体播放器软件播放（<strong>音乐质量受声卡档次影响</strong>)</p><h5 id="MIDI的优点"><a href="#MIDI的优点" class="headerlink" title="MIDI的优点"></a>MIDI的优点</h5><ul><li><strong>数据量极小</strong>（比CD立体声少3个数量级，比MP3少3个数量级）</li><li>易于制作和编辑修改</li><li>可以与波形声音同时播放</li></ul><h5 id="MIDI的不足"><a href="#MIDI的不足" class="headerlink" title="MIDI的不足"></a>MIDI的不足</h5><ul><li>能合成音乐【<strong>纯音乐</strong>】，不能合成歌曲和语言</li><li>音质与硬件设备相关</li></ul><h2 id="数字视频及应用"><a href="#数字视频及应用" class="headerlink" title="数字视频及应用"></a>数字视频及应用</h2><h3 id="数字视频"><a href="#数字视频" class="headerlink" title="数字视频"></a>数字视频</h3><p>泛指内容随时间变化的一个图象序列，又叫运动图象或活动图象(motion picture)。</p><p>常见视频：电视，电影，动画等。</p><p>视频的特点：</p><ul><li>内容随时间而变化，</li><li>伴随有与画面动作同步的声音（伴音），</li><li>人类接受的信息70%来自视觉，其中活动图象是信息量最丰富、直观、生动、具体的一种承载信息的媒体。</li><li>视频信息的处理是多媒体技术的核心。</li></ul><h4 id="数字视频的主要参数"><a href="#数字视频的主要参数" class="headerlink" title="数字视频的主要参数"></a>数字视频的主要参数</h4><ul><li>帧频、帧速率：一每秒钟显示多少帧图像，单位是fps。</li><li>图像扫描方式<ul><li>隔行扫描(interlaced scanning)</li><li>逐行扫描方式(progressive scanning)</li></ul></li><li>帧大小：每帧图像的分辨率，即图像宽度x图像高度（单位：像素）</li><li>颜色深度、像素深度：图像中每个像素的二进位数目（单位：bit)</li></ul><h4 id="数字视频信号的获取"><a href="#数字视频信号的获取" class="headerlink" title="数字视频信号的获取"></a>数字视频信号的获取</h4><p>视频信号的数字化过程：</p><p>先将RGB三基色转换为Y、U、V(亮度和2个色差信号)，经滤波后再分别作取样、量化和编码处理，得到数字视频的3个分量。</p><p><img src="E:/Blog/post-img/image-20230909123812911.png" alt="image-20230909123812911"></p><h5 id="数字视频的获取设备"><a href="#数字视频的获取设备" class="headerlink" title="数字视频的获取设备"></a>数字视频的获取设备</h5><ul><li>视频采集卡（简称视频卡）。</li><li>数字摄像头，通过光学镜头和CCD或CMOS采集动态图像，转换成数字信号并输入PC机。</li><li>脱机获取设备：数码摄像机。</li></ul><h4 id="视频编码"><a href="#视频编码" class="headerlink" title="视频编码"></a>视频编码</h4><p><img src="E:/Blog/post-img/image-20230909151018711.png" alt="image-20230909151018711"></p><h4 id="数字视频的应用"><a href="#数字视频的应用" class="headerlink" title="数字视频的应用"></a>数字视频的应用</h4><ol><li><p>可视电话：通话双方能互相看见的一种电话系统。<br>电话机具有摄像、显示、声音等功能，内置高质量CCD镜头及MODEM。</p></li><li><p>视频会议：多人同时参与的一种音/视频通信系统。<br>类似于可视电话，但多人参加通话，提供的功能也更加丰富。<br>两种实施方式：<br>通过电信局的数字通信网进行（政府系统的视频会议，图像和声音的质量好，保密性强）。<br>在互联网上进行，例如使用下列即时通信软件<br>iPad/iPhone的FaceTime,腾迅的QQ,微信等。</p></li><li><p><strong>VCD</strong></p><p>又叫：点播电视、<strong>视频点播</strong></p><p>定义：用户可以根据自己的需要主动收看电视节目</p></li></ol><p>光盘在数字视频存储中的应用：</p><p><img src="E:/Blog/post-img/image-20230909151717158.png" alt="image-20230909151717158"></p><h4 id="流媒体技术"><a href="#流媒体技术" class="headerlink" title="流媒体技术"></a>流媒体技术</h4><p>在因特网上收听（看）音（视）频节目的2种方式：</p><ul><li>下载存储方式：先下载存储在计算机中，下载完毕后再播放（缺点：需要等待较长时间，并需要较大的存储容量）</li><li>流式传输方式：边下载、边播放（优点：只需要下载一部分数据之后，就可以开始一边播放一边下载，等待时间短、存储需求小)【流媒体】</li></ul><p><strong>流媒体</strong>就是一种允许在网络上让用户一边下载一边收看（听）音视频媒体的<strong>媒体分发(delivery)技术</strong>。</p><h3 id="计算机动画"><a href="#计算机动画" class="headerlink" title="计算机动画"></a>计算机动画</h3><p>计算机动画一使用计算机生成一系列内容连续的画面供实时演播的一种技术，<u>它是一种计算机合成的数字视频，而不是用摄像机拍摄的“自然视频”。</u></p><p>计算机动画制作包括：在计算机中建立景物的模型、描述它们的运动、生成一系列逼真的图像</p><p>三维计算机动画制作过程分以下几个阶段：</p><p>(1)描述景物的形状与结构（建模)<br>(2)确定景物的颜色和材质（纹理）<br>(3)设置灯光和确定虚拟摄像机的位置<br>(4)描述场景中物体的运动和摄像机的移动<br>(5)绘制一系列的图像<br>(6)输出动画结果</p><h4 id="Flash动画"><a href="#Flash动画" class="headerlink" title="Flash动画"></a>Flash动画</h4><p>Flash动画的图像主要有矢量图形构成，因此不管怎样放大缩小它都清晰可见。<br>Flsh动画的文件扩展名为<code>.swf</code>,它的数据量较小，便于在互联网上传输。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;文本与文本处理&quot;&gt;&lt;a href=&quot;#文本与文本处理&quot; class=&quot;headerlink&quot; title=&quot;文本与文本处理&quot;&gt;&lt;/a&gt;文本与文本处理&lt;/h2&gt;&lt;p&gt;文本由一系列“字符”(character) 组成，每个字符均使用二进制编码表示。&lt;/p&gt;
&lt;p&gt;文本</summary>
      
    
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    <category term="数字媒体处理及应用" scheme="https://blog.mxne.cn/tags/%E6%95%B0%E5%AD%97%E5%AA%92%E4%BD%93%E5%A4%84%E7%90%86%E5%8F%8A%E5%BA%94%E7%94%A8/"/>
    
  </entry>
  
  <entry>
    <title>移动通信与互联网</title>
    <link href="https://blog.mxne.cn/posts/31f1.html"/>
    <id>https://blog.mxne.cn/posts/31f1.html</id>
    <published>2024-04-02T06:22:56.000Z</published>
    <updated>2024-04-02T06:41:44.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="数字通信入门"><a href="#数字通信入门" class="headerlink" title="数字通信入门"></a>数字通信入门</h2><h3 id="通信的基本概念"><a href="#通信的基本概念" class="headerlink" title="通信的基本概念"></a>通信的基本概念</h3><blockquote><p>现代通信（电信）：使用 电波 或 光波 传递信息的技术。磁带、光盘不属于</p></blockquote><h3 id="通信三要素"><a href="#通信三要素" class="headerlink" title="通信三要素"></a>通信三要素</h3><p><strong>通信三要素：信源、信宿、信道</strong></p><p>信源：发送信息的设备</p><p>信宿：接受信息的设备 </p><p>信道：信息的载体与传输媒介。其任务是迅速、可靠而准确地将信号从信源传输到信宿</p><p>信号：<u>被传输的信息都必须以某种<strong>光信号或电信号</strong>的形式才能进行传输。</u></p><p><img src="E:/Blog/post-img/image-20221127101657655.png" alt="image-20221127101657655"></p><h3 id="模拟信号和数字信号"><a href="#模拟信号和数字信号" class="headerlink" title="模拟信号和数字信号"></a>模拟信号和数字信号</h3><p><img src="E:/Blog/post-img/image-20230821171253726.png" alt="image-20230821171253726" style="zoom: 80%;" /></p><p>1）模拟信号：<strong>连续变化，曲线图</strong>；座机电话，收音机</p><p>2）数字信号：<strong>离散的（不连续的）脉冲序列。</strong>计算机中传输的全都是数字信号，电报机，传真机</p><blockquote><p><strong>直接 </strong>传输模拟信号的通信系统基本面临淘汰</p></blockquote><h3 id="有线通信"><a href="#有线通信" class="headerlink" title="有线通信"></a>有线通信</h3><p>有线通信传输介质：双绞线，同轴电缆，光纤，光缆</p><p><img src="E:/Blog/post-img/image-20230821172328128.png" alt="image-20230821172328128"></p><h4 id="1）双绞线"><a href="#1）双绞线" class="headerlink" title="1）双绞线"></a>1）双绞线</h4><p>绞合的 <strong>目的</strong>：<strong>减少 </strong>相邻线对之间的 <strong>电磁干扰</strong></p><p>双绞线分类：</p><ul><li>按传输速率：3类线（10Mb/s）；5类线（100Mb/s）；6类线（200Mb/s）；7类（10Gb/s）</li><li>按有无屏蔽层：<u>屏蔽双绞线（STP）；非屏蔽双绞线（UTP）</u></li></ul><p>特点：成本低，易受外部高频电磁波干扰，误码率较高;传输距离有限</p><p>缺点：易收到外部高频电磁波的干扰，误码率较高，通常只在建筑物内部使用。【100米使用中继器】</p><h4 id="2）同轴电缆"><a href="#2）同轴电缆" class="headerlink" title="2）同轴电缆"></a>2）同轴电缆</h4><p>基带同轴电缆（50Ω）以前在以太网中使用</p><p>宽带同轴电缆（75Ω）有线电视网使用</p><p><img src="E:/Blog/post-img/image-20230821172450911.png" alt="image-20230821172450911" style="zoom:80%;" /></p><h4 id="3）光纤"><a href="#3）光纤" class="headerlink" title="3）光纤"></a>3）光纤<img src="E:/Blog/post-img/image-20221202175750069.png" alt="image-20221202175750069"></h4><blockquote><p>原理：光线的入射角足够大时（入射角&gt;临界角），就会出现 <strong>全反射</strong>，重复此过程，光就沿着光纤传播下去。</p></blockquote><p>涂覆层：屏蔽外部光源的干扰</p><p>纤芯：石英玻璃丝</p><p>光纤分类：</p><ul><li><p>单模光纤：一根光纤，纤芯细，传输距离远，速率高，适合远程通信使用（<strong>单模好</strong>）</p></li><li><p>多模光纤：多根光纤，纤芯叫粗，传输距离近，速率低，相对适合短距离通信使用</p></li></ul><p>优点：</p><ul><li>通信容量大，速度快，距离远。带宽时目前最高的；【光纤不可穿透】</li><li>保密性强，信息不易泄露</li><li>质量较轻，便于运输和铺设</li><li>光纤不存在电磁干扰；</li></ul><p>缺点：</p><ul><li>可以弯曲，但不能过分弯曲或折叠；</li><li>不能过分拉伸，纤芯很脆；</li><li>纤芯加工要求比较高；断了之后难以修复【熔纤】</li></ul><p><u>光中继平均传输距离是 <strong>5km</strong></u>，光纤已全面取代电缆</p><h4 id="4）光缆"><a href="#4）光缆" class="headerlink" title="4）光缆"></a>4）光缆</h4><p><strong>一捆光纤</strong>（多芯光缆）就构成了<strong>光缆</strong>【与光纤的区别】</p><p><img src="E:/Blog/post-img/image-20230821173000984.png" alt="image-20230821173000984"></p><h3 id="无线通信"><a href="#无线通信" class="headerlink" title="无线通信"></a>无线通信</h3><blockquote><p><strong>概念：</strong>借助 <strong>电磁波</strong> 在空间传播进行信息传输</p></blockquote><h5 id="微波通信"><a href="#微波通信" class="headerlink" title="微波通信"></a>微波通信</h5><p>概念：一种频率为 <strong>300MHz ~ 300GHz</strong> 范围内的电磁波，波长（光速=波长*频率）很短【1m~0.1mm】。</p><p>特点：</p><ul><li><strong>直线传播</strong>，几乎没有绕射能力，需要设立中继站（建立在地面上）</li></ul><p><img src="E:/Blog/post-img/image-20221202190400526.png" width="400"/></p><ul><li>容量大，可靠性高</li><li>建设费用低</li><li>抗灾能力强</li><li>受天气影响，<strong>不如</strong>有线通信可靠</li></ul><p>应用：手机通信，蓝牙，GPS，无线局域网（WiFi），校园卡</p><h5 id="卫星通信"><a href="#卫星通信" class="headerlink" title="卫星通信"></a>卫星通信</h5><p>微波通信分为：地面微波通信 和 卫星微波通信</p><p>卫星通信：中继站 <strong>在人造卫星上</strong>的 <strong>微波通信</strong>。【卫星通信是<strong>微波接力通信</strong>的扩展】</p><p><img src="E:/Blog/post-img/image-20230821174113288.png" alt="image-20230821174113288"></p><h5 id="⭐无线电波"><a href="#⭐无线电波" class="headerlink" title="⭐无线电波"></a>⭐无线电波</h5><p>中波：主要沿地球表面传播，绕射能力强，适用于广播和海上通信</p><p>短波：具有较强的电离层反射能力，适用于环球通信</p><p>超短波和微波：绕射能力差，只能作为视距或超视距中继通信。</p><h4 id="移动通信"><a href="#移动通信" class="headerlink" title="移动通信"></a>移动通信</h4><blockquote><p>移动通信指的是 可<strong>自由移动 </strong>的<strong>通信终端 </strong>利用<strong>无线电波</strong>进行的通信</p></blockquote><p>移动通信属于微波通信</p><p>组成：移动台(手机) 基站 移动电话交换中心、</p><p>每个 <strong>基站</strong> 的有效区域 <strong>既相互分割，又彼此有所交叠</strong>，整个移动通信网就像是个<strong>蜂窝</strong>，所以也称为 “蜂窝式移动通信”。</p><p>所有 <strong>基站</strong> 都通过 <strong>微波或光缆</strong> 与 <strong>移动交换中心</strong> 通信</p><p><img src="E:/Blog/post-img/image-20221210171317010.png" alt="image-20221210171317010"></p><p><strong>第二代移动通信（2G）：GSM、CDMA、GPRS</strong>    打电话，发信息</p><p>第三代移动通信（3G）：上网<br>……</p><h3 id="调制解调技术"><a href="#调制解调技术" class="headerlink" title="调制解调技术"></a>调制解调技术</h3><p>高频振荡的正弦波信号（模拟信号）在长距离通信中能比其他波形信号传送的更远，因此就把数字信号夹带在高频振荡的正弦波信号进行传输</p><p>作用：解决信号的<strong>远距离传输</strong>问题</p><p><img src="E:/Blog/post-img/image-20230821181342042.png" alt="image-20230821181342042"></p><p><img src="E:/Blog/post-img/image-20221210172311378.png" alt="image-20221210172311378"></p><h4 id="调制和解调"><a href="#调制和解调" class="headerlink" title="调制和解调"></a>调制和解调</h4><p>设备：调制解调器【modem/猫】</p><p>调制：数字信号 —&gt; 模拟信号   数/模（D/A）</p><p>解调：模拟信号 —&gt; 数字信号   模/数（A/D）</p><h4 id="数字信号调制方法"><a href="#数字信号调制方法" class="headerlink" title="数字信号调制方法"></a>数字信号调制方法</h4><p>幅度调制、频率调制、相位调制</p><p><img src="E:/Blog/post-img/image-20230821180722650.png" alt="image-20230821180722650"></p><h4 id="数字信号的传输"><a href="#数字信号的传输" class="headerlink" title="数字信号的传输"></a>数字信号的传输</h4><ul><li>短距离传输：直接(基带)传输</li><li>远距离传输：载波传输</li></ul><h4 id="光纤通信原理"><a href="#光纤通信原理" class="headerlink" title="光纤通信原理"></a>光纤通信原理</h4><p>光猫：光 &lt;——&gt; 数字</p><p><img src="E:/Blog/post-img/image-20230821182059065.png" alt="image-20230821182059065"></p><h3 id="多路复用技术"><a href="#多路复用技术" class="headerlink" title="多路复用技术"></a>多路复用技术</h3><p>多路复用技术：多路信号使用同一条传输线同时传输。</p><p>作用：提高信道利用率</p><h4 id="常见多路复用"><a href="#常见多路复用" class="headerlink" title="常见多路复用"></a>常见多路复用</h4><ul><li>频分多路复用（FDM）：模拟信号，同一时刻每路信号占用不同的频段（并行）。高速公路道路分速度。电视</li><li>时分多路复用（TDM）：数字信号、时间片、计算机<ul><li>同步时分多路复用（STDM）</li><li>异步时分多路复用（ATDM）</li></ul></li><li>波分多路复用（WDM）：光信号</li></ul><blockquote><p>电缆调制解调技术（Cable MODEM）有线电视电缆一边看电视，一边上网 ———— 频分多路和时分多路</p></blockquote><h4 id="移动通信中的多路复用"><a href="#移动通信中的多路复用" class="headerlink" title="移动通信中的多路复用"></a>移动通信中的多路复用</h4><p>1G：频分多路复用（FDMA）</p><p>2G：时分多路复用（TDMA）</p><p>3G：码分多路复用（CDMA）</p><p>4G：正交频分复用（OFDM）</p><p>5G：空分复用技术（SDM）</p><h3 id="交换技术"><a href="#交换技术" class="headerlink" title="交换技术"></a>交换技术</h3><h4 id="电路交换"><a href="#电路交换" class="headerlink" title="电路交换"></a>电路交换</h4><p>电路交换是以电路连接为目的的交换方式，通信之前要在通信双方之间建立一条被双方独占的物理通道。</p><h5 id="⭐电路交换过程"><a href="#⭐电路交换过程" class="headerlink" title="⭐电路交换过程"></a>⭐电路交换过程</h5><ol><li>建立连接    </li><li>通信    </li><li>释放连接</li></ol><p>应用：电话通信</p><p>通话全过程中，用户<u>始终占用端到端的传输信道</u>，由于计算机数据传输具有突发性，不适合计算机数据通信。</p><p><img src="E:/Blog/post-img/image-20230822093534870.png" alt="image-20230822093534870" style="zoom:80%;" /></p><h4 id="分组交换"><a href="#分组交换" class="headerlink" title="分组交换"></a>分组交换</h4><p>原理：把需传输的数据划分为若干“分组”(包)，以分组为单位进行传输，将其传输到目的地再进行重组，还原成原报文。</p><h5 id="数据包格式"><a href="#数据包格式" class="headerlink" title="数据包格式"></a>数据包格式</h5><p><img src="E:/Blog/post-img/image-20230822093830824.png" alt="image-20230822093830824"></p><h5 id="分组交换原理"><a href="#分组交换原理" class="headerlink" title="分组交换原理"></a>分组交换原理</h5><p><img src="E:/Blog/post-img/image-20230822094248231.png" alt="image-20230822094248231"></p><h5 id="交换机和存储转发"><a href="#交换机和存储转发" class="headerlink" title="交换机和存储转发"></a>交换机和存储转发</h5><p><img src="E:/Blog/post-img/image-20230822095550568.png" alt="image-20230822095550568"></p><p>为了实现<strong>分组交换</strong>方式的数据传输，网络中必须使用一种关键设备 —— <strong>分组交换机</strong>。</p><p>分组交换机的基本工作模式：<strong>存储转发</strong>。</p><p>即每当交换机从端口收到一个包后，就检查该数据包要送达的目的计算机地址，然后查表(转发表)决定应该由哪个端口转发出去。考虑到经常会有许多包需要在同一端口进行转发，分组交换机的每个端口都有一个输出缓冲区，需要发送的包在该端口的缓冲区中排队。端口<u>每发送完一个包，就从缓冲区中提取下一个包进行发送</u>，这就是存储转发技术。</p><h5 id="分组交换优点"><a href="#分组交换优点" class="headerlink" title="分组交换优点"></a>分组交换优点</h5><ul><li>传输线路的利用率高</li><li>数据通信可靠。</li><li>灵活性好。</li></ul><h5 id="分组交换不足"><a href="#分组交换不足" class="headerlink" title="分组交换不足"></a>分组交换不足</h5><ul><li><p>分组在各结点存储转发时需要排队，这就会造成一定的时延。</p></li><li><p>分组必须携带的首部 (里面有必不可少的控制信息) 也造成了一定的开销</p></li><li><p>交换机需要具有较高性能的处理和控制能力，其成本也不容小视。</p></li></ul><p>应用： 交换式以太局域网、公用数据网（传统的广域网）、互联网（Internet）、移动通信网</p><blockquote><p>几乎所有的数据通信网都采用分组交换技术。</p><p>不同的分组交换网，基于不同的技术，采用不同的协议，因而性能和应用各部相同</p></blockquote><h2 id="计算机的网络基础"><a href="#计算机的网络基础" class="headerlink" title="计算机的网络基础"></a>计算机的网络基础</h2><p>计算机网络的定义：计算机网络是指将 ==地理位置不同== 的 ==具有独立功能== 的多台计算机及其外部设备，通过 ==通信线路== 连接起来，在网络操作系统，网络管理软件及网络通信协议的管理和协调下，实现 ==<strong>资源共享</strong>== 和 信息传递 的计算机系统。</p><h3 id="计算机网络的组成"><a href="#计算机网络的组成" class="headerlink" title="计算机网络的组成"></a>计算机网络的组成</h3><ul><li>计算机（终端设备）：网络主体</li><li>数据通信链路：传输介质（双绞线、光缆、无线电波等），通信控制设备（网卡，集线器，调制解调器，交换机，路由器…..）  就是<strong>信道</strong></li><li>网络通信协议：TCP/IP、HTTP、FTP、POP3 …</li><li>网络操作系统 和 网络应用软件<ul><li>网络操作系统（NOS）：运行在服务器上的操作系统，也叫 “服务器操作系统”，Unix  Linux Windows server</li><li>网络应用软件：电子邮件、QQ、浏览器 等…</li></ul></li></ul><h3 id="⭐计算机组网的目的"><a href="#⭐计算机组网的目的" class="headerlink" title="⭐计算机组网的目的"></a>⭐计算机组网的目的</h3><ul><li>数据通信：计算机之间相互传输数据</li><li>资源共享【首要】：网络最根本的目的是为了实现 <strong>资源共享</strong>，<u>共享硬件、软件、数据资源</u></li><li>实现分布式信息处理：分散在网络中的多台计算机协同完成大型问题</li><li>提高计算机系统的可靠性和可用性：1.后备  2.负载均衡</li></ul><h3 id="计算机网络的分类"><a href="#计算机网络的分类" class="headerlink" title="计算机网络的分类"></a>计算机网络的分类</h3><ol><li>按使用的传输介质</li></ol><ul><li><p>有线网</p></li><li><p>无线网</p></li></ul><ol><li>按网络使用性质</li></ol><ul><li><p>公用网</p></li><li><p>专用网</p></li><li><p>虚拟专网VPN</p></li></ul><ol><li>按网络的使用对象：</li></ol><ul><li>企业网 </li><li>政府网 </li><li>校园网</li></ul><ol><li>⭐按网络<strong>覆盖的地域范围</strong>：</li></ol><ul><li>局域网（LAN）</li><li>城域网（MAN）：5km ~ 50km</li><li>广域网（WAN）</li></ul><h3 id="网络性能指标"><a href="#网络性能指标" class="headerlink" title="网络性能指标"></a>网络性能指标</h3><p>带宽：又叫频宽，<strong>信道容量</strong>，是数据链路(信道)所能达到的“<strong>最高数据传输速率</strong>”，指单位时间内 <strong>能够</strong> 传输的比特数。（理论）</p><p>数据传输速率：又称比特率，指每秒钟 <strong>实际</strong> 传输的比特数，是信息传输速率（传信率）的度量。（实际）</p><p>误码率：数据传输中规定时间内出错数据占碑传输数据总数的比例</p><p>端到端延迟：指数据从信源传送到信宿所花费的时间</p><p>吞吐量：表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络的带宽或网络额定速率的限制</p><p>……</p><p>注意：<strong>速度 </strong>只有小写k（小k表1000），进率只有<strong>1000</strong></p><h3 id="⭐网络工作模式"><a href="#⭐网络工作模式" class="headerlink" title="⭐网络工作模式"></a>⭐网络工作模式</h3><p>客户机：需要使用其他计算机资源的计算机</p><p>服务器：提供资源给其他计算机使用的计算机</p><p><img src="E:/Blog/post-img/image-20230823091028927.png" alt="image-20230823091028927"></p><ol><li><strong>对等</strong>（peer-to-peer，p2p）模式：网络中的每台 PC 机<u>既可以作为客户机也可以作为服务器</u>，即 每一台计算机都能既充当服务的请求者，又充当服务的提供者。例：<strong>网上邻居(win7)，工作组，家庭组，BT下载、区块链</strong></li></ol><p><img src="E:/Blog/post-img/image-20221210185220934.png" alt="image-20221210185220934" style="zoom:50%;" /></p><ol><li><strong>客户/服务器</strong>（Client/Server，C/S）模式：网络中每一台计算机都扮演着<strong>固定的角色</strong>，要么是服务器， 要么是客户机。</li></ol><p><img src="E:/Blog/post-img/image-20221210185237630.png" alt="image-20221210185237630" style="zoom: 50%;" /></p><blockquote><p>服务器按用途分为：Web服务器、打印服务器、邮件服务器、文件服务器、数据服务器等</p></blockquote><h3 id="局域网基本原理"><a href="#局域网基本原理" class="headerlink" title="局域网基本原理"></a>局域网基本原理</h3><h4 id="主要特点"><a href="#主要特点" class="headerlink" title="主要特点"></a>主要特点</h4><ul><li><p>为一个单位(甚至家庭或个人)所拥有，自建自管，地理范围有限。</p></li><li><p>使用专用的传输介质进行连网和数据通信。</p></li><li><p>数据传输速率高(10Mbps~10Gbps)，延迟时间短，误码率低。</p></li></ul><h4 id="局域网的逻辑组成"><a href="#局域网的逻辑组成" class="headerlink" title="局域网的逻辑组成"></a>局域网的逻辑组成</h4><p>网络工作站（终端），网络服务器，网络打印机，网卡，传输介质，网络互联设备……</p><p><img src="E:/Blog/post-img/image-20221211105919292.png" alt="image-20221211105919292" style="zoom:67%;" /></p><h4 id="MAC地址"><a href="#MAC地址" class="headerlink" title="MAC地址"></a>MAC地址</h4><p>特点：48位二进制，物理地址，全球唯一性，不可修改，在网卡的ROM存储器中</p><p>局域网 根据 MAC地址 实现通信</p><p>例：08-00-20-0A-8C-6D，其中前3个字节有IEEE分配给厂家，后3个字节由厂家分配给网卡。</p><h5 id="网卡"><a href="#网卡" class="headerlink" title="网卡"></a>网卡</h5><p>网卡即计算机的通信控制器，”它是连接计算机和传输介质的控制电路，不仅实现与传输介质之间的物理连接和电信号匹配，还负责数据帧的发送与接收、封装与拆封等任务。</p><p>现在网卡都已集成在PC芯片组或只能手机的SoC芯片中，称之为“集成网卡”。</p><h5 id="帧格式"><a href="#帧格式" class="headerlink" title="帧格式"></a>帧格式</h5><p>在以太网上传输数据，采用将数据分组 (包) 的方法，以太网上的分组，称为“<strong>MAC帧</strong>”。帧格式如下：</p><p><img src="E:/Blog/post-img/image-20230823092831171.png" alt="image-20230823092831171"></p><p>局域网采用<strong>分组交换技术</strong>。为使网络上的计算机能够得到迅速而公平的数据传输机会，局域网要求每台计算机都把要传输的数据分成“<strong>帧</strong>”，<u>一次只能传输1帧</u>，而不允许任何计算机连续传输任意多的数据。</p><h3 id="常用局域网"><a href="#常用局域网" class="headerlink" title="常用局域网"></a>常用局域网</h3><h4 id="1-共享式以太网"><a href="#1-共享式以太网" class="headerlink" title="1.共享式以太网"></a>1.共享式以太网</h4><p>总线型以太网，<strong>总线拓扑结构</strong></p><p>==共享式以太网<strong>共享带宽</strong>==，假如总共带宽为10，每台计算机的带宽就为2.5</p><p>集线器的功能是: 把从一个端口接收到的数据帧以<strong>广播</strong>方式向其他的所有端口分发出去，并对信号进行放大以增加信号的传输距离，起着中继作用。(广播方式发送)</p><p><img src="E:/Blog/post-img/image-20230823101546760.png" alt="image-20230823101546760"></p><p>共享式局域网 <strong>只允许一对计算机进行通信</strong>，当计算机数目较多且通信频繁时，网络会发生拥塞，性能急剧下降，因而现在很少使用。</p><p>==<strong>CSMA/CD：</strong>== 1. 发前先听    2. 边听边发    3. 冲突停发    4. 延时重发</p><h4 id="2-交换式以太网"><a href="#2-交换式以太网" class="headerlink" title="2.交换式以太网"></a>2.交换式以太网</h4><p>星型以太网（<strong>星型拓扑结构</strong>），独享式以太网（==<strong>宽带独享</strong>==）</p><p><strong>交换机</strong> 认识MAC地址，根据MAC地址将数据转发（<strong>单播</strong>）；<strong>集线器</strong> 不认识MAC地址，以 <strong>广播</strong> 形式发送数据。</p><p><img src="E:/Blog/post-img/image-20230823131809470.png" alt="image-20230823131809470"></p><p><img src="E:/Blog/post-img/image-20221211100528945.png" alt="image-20221211100528945"></p><p>使用 <strong>集线器</strong> 进行连接的局域网称为 <strong>共享式局域网</strong>，而使用 <strong>交换机</strong> 进行连接的局域网则称为 <strong>交换式局域网</strong>。（由核心设备决定）</p><p>⭐==无论是共享式以太网还是交换式以太网，他们的 <strong>数据帧和MAC地址格式均相同，使用的网卡也都 没有差别</strong>，<strong>区别在于传输介质和传输速率</strong>。==（共享式：同轴电缆；交换式：双绞线）</p><h4 id="3-千-万-兆位以太网"><a href="#3-千-万-兆位以太网" class="headerlink" title="3.千(万)兆位以太网"></a>3.千(万)兆位以太网</h4><p>在学校、企业等单位内部，借助以太网交换机可以按性能高低以树状方式将许多小型以太网相互连接起来构成公司一部门一工作组一计算机的多层次的以太局域网。</p><p><img src="E:/Blog/post-img/image-20230823131919393.png" alt="image-20230823131919393"></p><h4 id="4-无线局域网（WLAN）wireless"><a href="#4-无线局域网（WLAN）wireless" class="headerlink" title="4.无线局域网（WLAN）wireless"></a>4.无线局域网（WLAN）wireless</h4><p>无线局域网需要使用无线网卡，无线接入点等设备构建；是有线局域网的扩充，不能单独存在，依赖于有线网络，是有线网络的补充和延伸</p><ul><li><p><u>WLAN是 <strong>以太网 和 无线通信技术 相结合的产物</strong></u></p></li><li><p>WLAN使用 <strong>无线电波</strong> 传输数据，主要是微波中的 <strong>2.4GHz 和 5GHz</strong> 两个频段</p></li><li><p>采用扩频方式通信</p></li></ul><p><img src="E:/Blog/post-img/image-20221211103037445.png" alt="image-20221211103037445"></p><p><img src="E:/Blog/post-img/image-20221211110442606.png" alt="image-20221211110442606"></p><p>WiFi和蓝牙都属于WLAN；==蓝牙：距离近，效率低==</p><p><img src="E:/Blog/post-img/image-20221211104148496.png" alt="image-20221211104148496"></p><p>无线局域网 <strong>优点</strong></p><ul><li>具有很好的灵活性</li><li>最大通信范围可达几米~几公里</li><li>组网，配置和维护较容易</li></ul><p>无线局域网 <strong>缺点</strong></p><ul><li>还不能完全脱离有线网络，只是有线网络的补充</li><li>传输速度较慢</li><li>产品相对较贵</li></ul><h2 id="互联网的组成"><a href="#互联网的组成" class="headerlink" title="互联网的组成"></a>互联网的组成</h2><h4 id="Internet-VS-internet-VS-intranet"><a href="#Internet-VS-internet-VS-intranet" class="headerlink" title="Internet VS internet VS intranet"></a>Internet VS internet VS intranet</h4><p>Internet：互联网的英文名是“lnternet”，它是专指前身为美国ARPA网、使用TCP/IP协议将各种实体网络连结而成的逻辑上的单一网络。半音译为“因特网”或“英特网”，国内通常称为互联网。</p><p>internet：首字母小写的“internet”指不论采用何种技术进行互相连接的网络，其范围更广，互联网只是internet的一个特例。</p><p>intranet：intranet指的是<strong>内部网</strong>，是一个使用与互联网同样技术的计算机网络，通常创建在一个企业或组织的内部并只为其成员提供服务。</p><h3 id="网络分层结构与TCP-IP协议"><a href="#网络分层结构与TCP-IP协议" class="headerlink" title="网络分层结构与TCP/IP协议"></a>网络分层结构与TCP/IP协议</h3><p>计算机网络的协议采用“分层”的方法进行设计和开发。分层可以把庞大而复杂的问题转化为若干较小的局部问题，使问题比较容易处理。</p><h4 id="分层结构"><a href="#分层结构" class="headerlink" title="分层结构"></a>分层结构</h4><ul><li>开放系统互连（OSI）</li><li>TCP/IP模型</li></ul><p><img src="E:/Blog/post-img/image-20230823163148115.png" alt="image-20230823163148115"></p><h4 id="分层优点"><a href="#分层优点" class="headerlink" title="分层优点"></a>分层优点</h4><ul><li><p>各层之间是独立的</p></li><li><p>灵活性好</p></li><li><p>结构上可分割开</p></li><li><p>易于实现和维护</p></li><li><p>能促进标准化工作</p></li></ul><h4 id="TCP-IP网络协议"><a href="#TCP-IP网络协议" class="headerlink" title="TCP/IP网络协议"></a>TCP/IP网络协议</h4><p><img src="E:/Blog/post-img/image-20230823163701006.png" alt="image-20230823163701006"></p><p>为了适应不同的应用需求，TCP/IP模型中4层中每一层都包含若干协议，整个TCP/IP一共包含有数百个协议，这些协议中，<u><strong>TCP(传输控制协议)</strong>和<strong>IP(网络互联协议)</strong>是其中最基本、最重要的核心协议</u>，因此通常用TCP/P来代表整个协议系列。</p><h5 id="应用层"><a href="#应用层" class="headerlink" title="应用层"></a>应用层</h5><p>规定了运行在终端设备上的应用程序之间如何通过互联的网络进行通信。如电子邮件程序使用的SMTP协议(简单邮件传送协议)、Web浏览器使用的HTTP协议(超文本传输协议)。</p><h5 id="传输层"><a href="#传输层" class="headerlink" title="传输层"></a>传输层</h5><p>规定了怎样进行端到端的数据传输。主要有TCP和UDP两个协议</p><ul><li>TCP协议负责<strong>可靠</strong>地完成数据从发送计算机到接收计算机的传输。</li><li>UDP协议使用时，网络只是<strong>尽力而为</strong>进行快速数据传输，但不完全保证传输的可靠性</li></ul><h5 id="网络互联层"><a href="#网络互联层" class="headerlink" title="网络互联层"></a>网络互联层</h5><p>他规定了在整个互连的网络中所有计算机统一使用的编址方案和数据包格式(称为IP数据报)，以及怎样将IP数据报从一台计算机逐步通过一个个路由器送达最终目标的转发机制。</p><h5 id="网络接口层"><a href="#网络接口层" class="headerlink" title="网络接口层"></a>网络接口层</h5><p>又称为链路层。他规定了怎样与各种不同的物理网络进行接口，负责把IP包转换成适合在特定物理网络中传输的帧格式。</p><h5 id="TCP-IP分层模型和协议标准的主要特点"><a href="#TCP-IP分层模型和协议标准的主要特点" class="headerlink" title="TCP/IP分层模型和协议标准的主要特点"></a>TCP/IP分层模型和协议标准的主要特点</h5><ol><li>适用于异构网络的互联</li><li>确保可靠的端到端通信</li><li>与操作系统紧密结合(网卡及其驱动程序实现第1层协议，2、3层协议由操作系统内核实现，应用层协议则在应用软件中体现)</li><li>TCP/IP及支持面向连接服务(如TCP)，也支持无连接服务(如UDP)</li></ol><h3 id="IP协议与路由器"><a href="#IP协议与路由器" class="headerlink" title="IP协议与路由器"></a>IP协议与路由器</h3><p>在由许多物理网络互连而成的庞大的互连网中，为了屏蔽不同物理网络中计算机地址格式的差异，IP协议规定全网所有计算机必须使用一种统一格式的地址(简称IP地址)作为其标识。(统一编址)</p><h4 id="IP地址特点"><a href="#IP地址特点" class="headerlink" title="IP地址特点"></a>IP地址特点</h4><ul><li>唯一性: 网络上每台计算机都有一个与众不同的唯一的IP地址</li><li>简明性：所有地执奖长度都是4个字节32个二进位(PV4)</li></ul><p>IP地址中包含有<strong>网络号</strong>和<strong>主机号</strong>两个内容。<u>前者用来指明主机所从属的物理网络的编号，后者是主机在所属物理网络中的编号</u></p><h4 id="IP地址的表示"><a href="#IP地址的表示" class="headerlink" title="IP地址的表示"></a>IP地址的表示</h4><p>IP地址是长度是<strong>32bit</strong>，由<strong>4个字节</strong>组成。为了阅读和书写方便，IP地址通常采用<strong>点分十进制</strong>数来表示。</p><p><strong>IPv6：128位</strong></p><h4 id="IP地址的分类"><a href="#IP地址的分类" class="headerlink" title="IP地址的分类"></a>IP地址的分类</h4><p><img src="E:/Blog/post-img/image-20230823165034535.png" alt="image-20230823165034535"></p><p>A类：用于拥有大量主机(≤16777214)的超大型网络，全球只有<strong>126个网络</strong>可获得A类地址。(首字节小于128)；0000 0000为<strong>保留地址</strong>，0111 1111【127.x.x.x】为本地<strong>回送地址</strong></p><p>B类：用于规模适中的网络(≤65 534主机)。(首字节大于等于128小于192)</p><p>C类：用于主机数量不超过254台的小型网络。(首字节大于等于192但小于224)</p><blockquote><p>A：<u><strong>0</strong></u>000 0001 - <strong><u>0</u></strong>111 1110    1 ~ 126 【127为回送地址】</p><p>B：<strong><u>10</u></strong>00 0000 - <strong><u>10</u></strong>11 1111    128 ~ 191</p><p>C：<strong><u>110</u></strong>0 0000 - <strong><u>110</u></strong>1 1111    192 ~ 223</p></blockquote><h5 id="特殊ip地址"><a href="#特殊ip地址" class="headerlink" title="特殊ip地址"></a>特殊ip地址</h5><ul><li>主机号全“0”：称为<strong>网络地址</strong>，用来表示整个一个网络。</li><li>主机号全“1”：称为<strong>直接广播地址</strong>，指该网络中所有主机。</li></ul><h4 id="子网掩码和网络号"><a href="#子网掩码和网络号" class="headerlink" title="子网掩码和网络号"></a>子网掩码和网络号</h4><p>子网掩码(网络屏蔽码)是一个32位的代码，其中与IP地址中网络号对应位置处的二进位是“1”，与主机号对应位置处的二进位是“0”</p><p>网络号：将子网掩码与IP地址进行逻辑乘就能获得网络号</p><p><img src="E:/Blog/post-img/image-20230823170531437.png" alt="image-20230823170531437"></p><h4 id="IP数据报"><a href="#IP数据报" class="headerlink" title="IP数据报"></a>IP数据报</h4><p>相互连接的异构网络，它们使用的数据包 (或)格式互不兼容，因此不能直接将一个网络送来的包传送给另一个网络。</p><p>解决方法: IP协议定义了一种独立于各种物理网的统一的数据包格式，称为IP数据报 (IP datagram)。</p><p>数据报格式：</p><p>IP数据报由两部分组成：<strong>头部和数据区</strong></p><p><img src="E:/Blog/post-img/image-20230823170904269.png" alt="image-20230823170904269"></p><h4 id="路由器"><a href="#路由器" class="headerlink" title="路由器"></a>路由器</h4><p>为了把不同类型的网络互连成一个统一的网络，统一使用TCP/IP协议和路由器</p><p>路由器是连接异构网络的关键设备，本质上也是一种分组交换机，他屏蔽了各种网络的技术差异，将IP数据报传送到下一站(另一个路由器或计算机)，确保了各种不同物理网络的无缝连接。</p><p>路由器功能：主要是<strong>选择路由</strong>和<strong>转发IP数据报</strong>，并进行协议转换。一个路由器通常连接2个以上网络，所以同<u>一个路由器会拥有多个不同的IP地址的</u>。</p><h5 id="⭐路由器工作过程"><a href="#⭐路由器工作过程" class="headerlink" title="⭐路由器工作过程"></a>⭐路由器工作过程</h5><p><img src="E:/Blog/post-img/image-20230827092247943.png" alt="image-20230827092247943"></p><ol><li>发送端计算机将数据封装成IP数据报的形式，发送给路由器</li><li><p>路由器接收到IP数据报之后，根据IP数据报中目的地主机的IP地址，查找路由表，选择转发路径</p></li><li><p>根据下个网络所使用的协议，将I数据报封装成相应的数据包()格式，送入缓冲器中排队</p></li><li><p>在数据链路空闲时将数据包转发到另一网络;</p></li><li><p>若目的地计算机就在该网络上，则送达计算机，否则再传送给下一个路由器进行处理</p></li></ol><h3 id="互联网的发展及组成"><a href="#互联网的发展及组成" class="headerlink" title="互联网的发展及组成"></a>互联网的发展及组成</h3><p>第1阶段：起源于1969年美国国防部的<strong>ARPANET</strong>网(4个大学互连)，1983年确定TCP/IP协议作为ARPANET的标准协议。</p><p>第2阶段：20世纪90年代起，美国政府机构和公司的计算机也纷纷入网，建成了由主干网、地区网和校园网 (或企业网)三级结构组成的互联网。</p><p>第3阶段：迅速扩大到全球约100多个国家和地区，逐渐形成了多层次ISP 结构的互联网，出现了<strong>互联网服务提供商(ISP)</strong></p><p><u>互联网组成 = 通信子网 + 资源子网</u></p><h4 id="主机地址和域名系统⭐"><a href="#主机地址和域名系统⭐" class="headerlink" title="主机地址和域名系统⭐"></a>主机地址和域名系统⭐</h4><p>域名是IP地址的别名，可以通过IP地址访问，也可以通过域名访问。</p><h5 id="主机地址和域名的关系"><a href="#主机地址和域名的关系" class="headerlink" title="主机地址和域名的关系"></a>主机地址和域名的关系</h5><p>一个IP地址可对应多个域名，一个域名只能对应一个IP地址，一台主机可以没有域名</p><p><img src="E:/Blog/post-img/image-20230827094315263.png" alt="image-20230827094315263"></p><p>域名格式：5级域名.4级域名.3级域名.2级域名.顶级域名</p><p>把域名翻译成IP地址的软件称为域名系统DNS。运行域名系统的主机叫做域名服务器</p><h5 id="域名命名规则"><a href="#域名命名规则" class="headerlink" title="域名命名规则"></a>域名命名规则</h5><p>只许使用字母、数字和连字符，以字母或数字开头并结尾，域名总长度不超过255个字符</p><p>顶级域名规定：</p><ul><li>国际顶级域名：int (国际组织)</li><li>国家顶级域名: cn（中国），uk（英国）</li><li>通用顶级域名&lt;机构名&gt;：com(营利性组织)，net(网络服务机构) 美国专用: org，edu， gov，mil等</li></ul><p>二级域名的规定：</p><ul><li><p>机构类别域名: ac科研机构，com企业，net网络服务机构，org非营利性组织，edu教育机构，gov政府部门</p></li><li><p>行政区域域名: bj北京，sh上海，js江苏</p></li></ul><h3 id="互联网的接入"><a href="#互联网的接入" class="headerlink" title="互联网的接入"></a>互联网的接入</h3><h4 id="电话拨号接入"><a href="#电话拨号接入" class="headerlink" title="电话拨号接入"></a>电话拨号接入</h4><p>通过本地公用电话网接入计算机网络</p><p>最高速率：56Kbps</p><p>设备：电话Modem、电话线</p><p>交换技术：电路交换</p><p><u>特点：<strong>上网时无法通话</strong>，它与打电话一样要按通话<strong>时间进行计费</strong></u></p><p><img src="E:/Blog/post-img/image-20230827095358092.png" alt="image-20230827095358092"></p><h4 id="ADSL接入"><a href="#ADSL接入" class="headerlink" title="ADSL接入"></a>ADSL接入</h4><p><strong>非对称数字用户线</strong>(ADSL)：也通过本地公用电话网接入计算机网络</p><p>设备：ADSL Modem、以太网卡、电话线</p><p>原理：频分多路复用 + 数字调制</p><p>速率：⭐</p><ul><li>上传速度：64kbps~256kbps</li><li>下行速度: 1~8Mbps</li></ul><p><img src="E:/Blog/post-img/image-20230827100112472.png" alt="image-20230827100112472"></p><p>特点</p><ul><li><strong>上网和通话互不影响</strong></li><li><p>虽然使用的还是原来的电话线，但 ADSL 传输的数据并不通过电话交换机，所以<strong>ADSL上网不需要缴付额外的电话费;</strong></p></li><li><p>ADSL 的<strong>数据传输速率是根据线路的情况自动调整的</strong>，它以“尽力而为”的方式进行数据传输</p></li></ul><h4 id="有线电视网接入"><a href="#有线电视网接入" class="headerlink" title="有线电视网接入"></a>有线电视网接入</h4><p>有线电视已广泛采用<strong>光纤同轴电缆混合网</strong>(Hybrid Fiber Coaxial，简称HFC)进行信息传输：</p><p><strong>主干</strong>线路采用<strong>光纤连接到小区</strong>，然后用<strong>同轴电缆</strong>以<strong>总线</strong>方式接入用户<u>【<strong>光纤+同轴电缆</strong>】</u></p><p>设备：Cable Modem、以太网卡</p><p>Cable MODEM的基本原理与ADSL相似，以频分多路复用的方式工作(上网电视互不影响)</p><p>特点：数据通信与电视信号的传输互不影响，<strong>上网时仍可收看电视节目。</strong></p><h4 id="光纤接入"><a href="#光纤接入" class="headerlink" title="光纤接入"></a>光纤接入</h4><p>使用<strong>光纤</strong>作为计算机接入网络的主要传输介质,分为:</p><ul><li><p>光纤到小区 (FTTZ)：将光网络单元放置在小区，为整个小区服务</p></li><li><p>光纤到大楼 (FTTB)：将光网络单元放置在大楼内，以每栋楼为单位，提供高速数据通信、远程教育等宽带业务，主要为单位服务。</p></li><li>光纤到家庭 (FTTH)：将光网络单元放置在楼层或用户家中，由几户或1户家庭专用，为家庭提供宽带业务</li></ul><p>我国目前普遍采用“光纤到楼、以太网入户”(FTTX+ETTH) 的做法，其原理为:</p><p><img src="E:/Blog/post-img/image-20230827101135876.png" alt="image-20230827101135876"></p><h4 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h4><p><img src="E:/Blog/post-img/image-20230827101610693.png" alt="image-20230827101610693"></p><h2 id="互联网提供的服务"><a href="#互联网提供的服务" class="headerlink" title="互联网提供的服务"></a>互联网提供的服务</h2><h3 id="网络通信服务"><a href="#网络通信服务" class="headerlink" title="网络通信服务"></a>网络通信服务</h3><h4 id="电子邮件"><a href="#电子邮件" class="headerlink" title="电子邮件"></a>电子邮件</h4><h5 id="电子邮箱及其地址"><a href="#电子邮箱及其地址" class="headerlink" title="电子邮箱及其地址"></a>电子邮箱及其地址</h5><p>每个电子邮箱都有一个全球惟一的邮件地址。</p><p>邮箱地址的组成：&lt;u&gt;邮箱名@邮箱所在服务器的域名&lt;/u&gt;，例如：<code>blog@mxne.cn</code></p><h5 id="电子邮件的组成"><a href="#电子邮件的组成" class="headerlink" title="电子邮件的组成"></a>电子邮件的组成</h5><ul><li>头部：发送方/接收方地址，抄送地址、主题</li><li>正文：信件的内容</li><li>附件：<strong>可包含一个或多个文件，文件格式任意。</strong></li></ul><p><img src="E:/Blog/post-img/image-20230827104627931.png" alt="image-20230827104627931"></p><h5 id="电子邮件系统的工作过程"><a href="#电子邮件系统的工作过程" class="headerlink" title="电子邮件系统的工作过程"></a>电子邮件系统的工作过程</h5><p>电子邮件系统按<strong>C/S模式</strong>工作。<strong>发送</strong>邮件一般采用<strong>SMTP协议</strong>，若收信人邮件地址不存在，则退回信件并通知发信人;<strong>接收</strong>邮件采用<strong>POP3 (或IMAP4) 协议</strong>，需验证用户身份之后才能读出邮件或下载邮件。</p><p><img src="E:/Blog/post-img/image-20230827105115159.png" alt="image-20230827105115159"></p><blockquote><p>邮件协议</p><ol><li><p>MIME (多用途的网际邮件扩充协议)</p></li><li><p>SMTP 协议 (简单邮件传输协议)—发送方使用，使用 TCP 的25 号端口。</p></li><li><p>POP3 协议 (邮局协议 3)—接收方使用，使用 TCP 的 110 号端口。</p></li><li><p>IMAP4 协议 (Interet 邮件访问协议)一-接收方使用，于 POP3 的新协议，功能更丰富</p></li></ol></blockquote><h4 id="即时通讯"><a href="#即时通讯" class="headerlink" title="即时通讯"></a>即时通讯</h4><p>即时通信(instant Messaging)就是实时通信，他是互联网提供的一种允许人们实时快速地交换消息的通信服务。</p><p>qq是即时通讯【双方同时在线】，mail是异步通信方式。</p><h4 id="文件传输服务FTP"><a href="#文件传输服务FTP" class="headerlink" title="文件传输服务FTP"></a>文件传输服务FTP</h4><p>文件传输服务FTP 按<strong>C/S模式</strong>工作。客户机与服务器需要建立两个连接:（1）控制连接 （2）数据连接</p><p>使用FTP进行文件传输时，可以一次传输一个文件(夹)，也可以一次传输多个文件(夹)</p><h5 id="FTP使用："><a href="#FTP使用：" class="headerlink" title="FTP使用："></a>FTP使用：</h5><ol><li>命令提示符（DOS）</li><li>浏览器地址栏输入：<code>ftp://[用户名:口令@]FTP服务器域名[:端口号]</code></li><li>FTP客户端程序。</li></ol><blockquote><p>互联网上有许多免费公开的 FTP 服务器为用户提供文件共享服务，它们用 <code>anonymous</code> 作为<strong>用户名</strong>，以<strong>用户的电子邮件地址作为口令</strong>进行登录，通常只能查看和下载文件，不能修改和上传文件。</p></blockquote><h3 id="WWW信息服务"><a href="#WWW信息服务" class="headerlink" title="WWW信息服务"></a>WWW信息服务</h3><p>WWW是典型的C/S模式。</p><h4 id="网站和网页"><a href="#网站和网页" class="headerlink" title="网站和网页"></a>网站和网页</h4><p>网站：是互联网上用于展示特定内容的一组相关网页(Web page)的集合</p><p>网页：是一种超文本文档，它由文字、图像、音频、视频、脚本程序等组成。</p><p>主页：网站中的起始网页</p><p>网页最重要的特性是能借助超链把网页相互连接起来</p><h4 id="HTML文档"><a href="#HTML文档" class="headerlink" title="HTML文档"></a>HTML文档</h4><p>网页大多数采用<code>HTML</code><strong>(超文本标记语言)</strong>语言进行编写的<strong>超文本文档</strong>，其文件后缀为<code>.html</code>。可以使用<code>FontPage</code>、<code>DreamWeaver</code>、<code>HBuilder</code>进行编写网页。</p><p><strong>超链的涟源</strong>可以是网页中的字、词或语句，也可以是图像;</p><p><strong>超链的链宿</strong>可以是同一个或另一个网站中的某个网页，也可以是本网页内的某段文字或某个图片。</p><h4 id="HTTP协议"><a href="#HTTP协议" class="headerlink" title="HTTP协议"></a>HTTP协议</h4><p>HTTP 协议:中文为“<strong>超文本传输协议</strong>”，工作于 TCP/IP 的应用层，它将网址发送给 Web 服务器，Web 服务器就把相应的网页传输给 Web 浏览器:使用 TCP 的 80 号端口。</p><blockquote><p>HTTP+SSL安全套接字协议 =HTTPS</p></blockquote><h4 id="URL"><a href="#URL" class="headerlink" title="URL"></a>URL</h4><p><strong>统一资源定位器</strong>URL(Uniform Resource Locator)用来标识wWW网中每个信息资源(网页)的地址，俗称“<strong>网址</strong>”。</p><h5 id="URL组成"><a href="#URL组成" class="headerlink" title="URL组成"></a>URL组成</h5><p><img src="E:/Blog/post-img/image-20230827150000737.png" alt="image-20230827150000737"></p><p><strong>协议名称</strong>://主机域名或IP地址[:端口号]/文件路径/文件名</p><p>常见协议</p><ul><li>http和https: 超文本传输协议，浏览器向服务器请求下载网页</li><li>ftp: 文件传输协议，客户端与FTP服务器进行文件传输操作</li><li>mailto：SMTP邮件协议，向URL指出邮箱发送电子邮件</li><li>telnet：远程登录协议，客户端仿真为一台终端，登录到域名指出的计算机上进行远程操控处理</li></ul><h4 id="Web浏览器"><a href="#Web浏览器" class="headerlink" title="Web浏览器"></a>Web浏览器</h4><p>可以使用<code>Plug-in程序</code>（插件）来扩展浏览器的功能。</p><h4 id="Web信息检索"><a href="#Web信息检索" class="headerlink" title="Web信息检索"></a>Web信息检索</h4><ol><li>使用主题目录</li><li>使用搜索引擎</li></ol><h4 id="静态网页和动态网页"><a href="#静态网页和动态网页" class="headerlink" title="静态网页和动态网页"></a>静态网页和动态网页</h4><p>Web网页又“静态网页”和“动态网页”两大类。</p><h5 id="静态网页"><a href="#静态网页" class="headerlink" title="静态网页"></a>静态网页</h5><p>静态网页通常指哪些内容基本不变的网页，浏览器请求此类页面时，<u>服务器直接从其硬盘中读出该HTML文档，原封不动地回传给浏览器</u>即可。静态网页实实在在保存在Web服务器中，每个网页都是一个独立的文件。</p><p>优点：简单、响应速度块</p><p>不足：不适合于网页中包含动态数据 (如外汇行情、股票价格、天气情况等)的应用场合。</p><h5 id="动态网页"><a href="#动态网页" class="headerlink" title="动态网页"></a>动态网页</h5><p>动态网页的内容不是预先确定的，而是网站在网页请求时根据用户提供的参数实时生成的页面，由于大型Web应用中的数据都存放在后台的数据库中，因此<u>动态网页生成过程中还需要访问数据库。</u></p><p>优点: 适合于网页中包含动态数据的应用场合。</p><p>不足：相对于静态网页结构更加复杂，响应速度较慢</p><h4 id="Web信息处理系统"><a href="#Web信息处理系统" class="headerlink" title="Web信息处理系统"></a>Web信息处理系统</h4><p>通常两层的客户服务器结构对于访问静态网页是很合适的。但如果访问动态生成的网页，就需要采用客户/服务器/数据库的三层结构，即把数据库服务器从原先第2层分离出来，成为独立的数据库服务层。</p><p><img src="E:/Blog/post-img/image-20230827151959572.png" alt="image-20230827151959572"></p><h2 id="网络信息安全"><a href="#网络信息安全" class="headerlink" title="网络信息安全"></a>网络信息安全</h2><p><strong>确保网络信息安全的目的是为了保证信息不被<u>泄露、篡改和破坏</u>。</strong></p><h3 id="信息安全的技术措施"><a href="#信息安全的技术措施" class="headerlink" title="信息安全的技术措施"></a>信息安全的技术措施</h3><ol><li>真实性鉴别。对通信双方的身份和所传送信息的真伪能准确地进行鉴别。</li><li>访问控制。控制用户对数据资源的访问权限，防止未经授权使用或修改数据。</li><li>数据加密。保护数据秘密，未经解密其内容不会显露。</li><li>数据完整性。保护数据不被非法修改，使数据在传送前后保持完全相同。</li><li><p>数据可用性。保护数据在任何情况(包括系统故障)不会丢失。</p></li><li><p>防止否认。接收方要发送方承认信息是他发出的，而不是他人冒名发送的，发送方也要求接收方不否认已经收到信息。</p></li><li><p>审计管理。监督用户活动、记录用户的操作过程等</p></li></ol><h3 id="数据加密与数字签名"><a href="#数据加密与数字签名" class="headerlink" title="数据加密与数字签名"></a>数据加密与数字签名</h3><p><img src="E:/Blog/post-img/image-20230827153633615.png" alt="image-20230827153633615"></p><p>加密系统的组成</p><ul><li>明文：未加密的报文</li><li>密文：加密后的报文</li><li>加密、解密算法</li><li>加密、解密的密钥</li></ul><blockquote><p>密钥越长，加密能力越强。</p></blockquote><h4 id="对称加密和非对称加密"><a href="#对称加密和非对称加密" class="headerlink" title="对称加密和非对称加密"></a>对称加密和非对称加密</h4><p><img src="E:/Blog/post-img/image-20230827154639611.png" alt="image-20230827154639611"></p><p><strong>对称秘钥加密</strong>系统中，消息发送方和消息接收方使用<strong>相同的秘钥</strong>，发送方<strong>使用该秘钥对明文进行加密</strong>，然后将密文传输至接收方，接收方再<strong>用相同的秘钥对收到的密文进行解密</strong>。【加密解密使用同一个密钥】</p><p><strong>非对称秘钥加密</strong>系统中，它给每一个用户分配一对秘钥；一个为<strong>私有密钥(私钥)</strong>,其是保密的，只有用户本人知道;另一个为<strong>公共秘钥(公钥)</strong>，是可以让其他用户知道的。【加密解密使用不同密钥】</p><blockquote><p>密钥个数计算</p><p>对称秘钥加：有n个用户的网络，需要n*(n-1)/2个密钥，4个用户：3+2+1个密钥。</p><p>非对称秘钥加密：有n个用户的网络，需要n个公共密钥和n个私有密钥。</p></blockquote><h4 id="数字签名"><a href="#数字签名" class="headerlink" title="数字签名"></a>数字签名</h4><p>数字签名是通信过程中附加在消息(例如邮件、公文、网上交易数据、软件等)上并随着消息一起发送的别人<strong>无法伪造的一串代码</strong>。它是发送者发送<strong>信息真实性的一个有效证明。</strong></p><p>数字签名还能<strong>确保消息传输的完整性</strong>，即消息传输过程中任何修改和变化都能被发觉，而且数字签名具有<strong>不可抵赖性</strong>，因为他隐含了对发送者的身份认证，可以防止网上交易中的抵赖行为。</p><p>数字签名是数字加密技术和数字摘要技术的应用。</p><h3 id="身份认证、数字证书与访问控制"><a href="#身份认证、数字证书与访问控制" class="headerlink" title="身份认证、数字证书与访问控制"></a>身份认证、数字证书与访问控制</h3><h4 id="身份认证"><a href="#身份认证" class="headerlink" title="身份认证"></a>身份认证</h4><p>证实某人(机)的真实身份是否与其声称的身份相符,防假冒。<strong>身份认证是访问控制的基础</strong>。</p><p>身份认证的方法</p><ul><li>鉴别对象本人才知道的<strong>信息</strong>(如口令、验证码等)</li><li>鉴别对象本人才具有的<strong>信物</strong>(例如磁卡、IC卡、U盾等)</li><li>鉴别对象本人才具有的<strong>生理特征</strong>(例如指纹、手纹、人脸等)</li></ul><h4 id="数字证书"><a href="#数字证书" class="headerlink" title="数字证书"></a>数字证书</h4><p>数字证书是一个<strong>电子文档</strong>，其中至少包含有拥有者信息、公钥以及证书颁发者的数字签名等信息。他如同居民身份证、房产证一样，是经过权威的证书授权机构(<strong>CA中心</strong>)审核签发。<strong>数字证书只在特定的时间段内有效</strong>。</p><h4 id="访问控制"><a href="#访问控制" class="headerlink" title="访问控制"></a>访问控制</h4><p>对信息资源的访问还必须进行严格而有序的控制，这是系统在身份认证之后根据用户的不同身份而进行控制的访问控制的任务是<strong>根据不同的用户分配各自的控制权限。</strong></p><p>访问控制是在身份鉴别的基础上进行。</p><h3 id="防火墙与入侵检测"><a href="#防火墙与入侵检测" class="headerlink" title="防火墙与入侵检测"></a>防火墙与入侵检测</h3><h4 id="防火墙"><a href="#防火墙" class="headerlink" title="防火墙"></a>防火墙</h4><p>防火墙是用于将互联网的子网(最小的子网是一台计算机)与互联网的其余部分相隔以维护网络内部信息安全的一种<strong>软件</strong>或<strong>硬件</strong>设备。<u>它位于子网和它所外接的网络之间。子网流入流出的所有信息均要经过防火墙。</u></p><p>防火墙是<strong><u>被动</u></strong>用来<strong>防范外部网络攻击</strong>。【<strong>防外</strong>不防内】</p><h4 id="入侵检测"><a href="#入侵检测" class="headerlink" title="入侵检测"></a>入侵检测</h4><p>入侵检测是<strong><u>主动</u></strong>保护系统免受攻击的一种网络安全技术。他对系统的运行状态进行监视，及时发现来自<u><strong>外部和内部</strong></u>的各种攻击企图、攻击行为和任何未经授权的访问活动，以保证系统资源的机密性、完整性和可用性。</p><blockquote><p>注意：防火墙和入侵检测的区别</p></blockquote><h3 id="计算机病毒防范"><a href="#计算机病毒防范" class="headerlink" title="计算机病毒防范"></a>计算机病毒防范</h3><h4 id="计算机病毒"><a href="#计算机病毒" class="headerlink" title="计算机病毒"></a>计算机病毒</h4><p>计算机病毒是有人蓄意编制的一种<u>具有自我复制能力的、寄生性的、破坏性</u>的<strong>计算机程序</strong>。【人为编制】</p><p>计算机病毒能在计算机中生存，通过自我复制进行传播，<u>在一定条件下被激活</u>，从而给计算机系统造成损害甚至严重破坏系统中的<u>软件、<strong>硬件</strong>和数据资源</u>。</p><h5 id="计算机病毒的特点"><a href="#计算机病毒的特点" class="headerlink" title="计算机病毒的特点"></a>计算机病毒的特点</h5><ol><li>破坏性：破坏计算机软件、硬件和数据资源。</li><li>隐蔽性：隐藏在可执行文件和数据文件中。</li><li>传染性和传播性：电子邮件、网页链接等方式传播</li><li>潜伏性：可能长时间潜伏在合法程序中，在一定条件下触发（如到达指定时间）。</li></ol><h4 id="木马程序"><a href="#木马程序" class="headerlink" title="木马程序"></a>木马程序</h4><p>木马病毒是一种<strong>特殊的计算机病毒</strong>，它能偷偷记录用户的键盘操作，盗窃用户账号(如游戏账号,股票账号,网上银行账号)、密码和关键数据，甚至使“中马”的电脑被别有用心者所操控，安全和隐私完全失去保证。【远程监控程序】</p><p>传播方式：电子邮件的附件、软件下载</p><h4 id="防范措施"><a href="#防范措施" class="headerlink" title="防范措施"></a>防范措施</h4><ul><li><p>不使用来历不明的程序和数据</p></li><li><p>不轻易打开来历不明的<strong>电子邮件</strong>，特别是附件</p></li><li><p>及时修补操作系统及其捆绑软件的漏洞</p></li><li><p>确保系统的安装盘和重要的数据盘处于“<strong>写保护</strong>”状态</p></li><li><p>在机器上<strong>安装杀毒软件</strong>(包括病毒防火墙软件），使启动程序运行、接收邮件和下载Web文档时自动检测与拦截病毒等</p></li><li><p>经常和及时地做好系统及关键<strong>数据的备份</strong>工作</p></li></ul><p><strong>杀毒软件具有滞后性</strong>，杀毒软件对计算机病毒的检测与消除能力通常滞后于病毒的出现，所以杀毒软件、防病毒卡等并不都是 100%可靠。要<strong>以防为主，以杀为辅</strong></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;数字通信入门&quot;&gt;&lt;a href=&quot;#数字通信入门&quot; class=&quot;headerlink&quot; title=&quot;数字通信入门&quot;&gt;&lt;/a&gt;数字通信入门&lt;/h2&gt;&lt;h3 id=&quot;通信的基本概念&quot;&gt;&lt;a href=&quot;#通信的基本概念&quot; class=&quot;headerlink&quot; ti</summary>
      
    
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    <category term="移动通信与互联网" scheme="https://blog.mxne.cn/tags/%E7%A7%BB%E5%8A%A8%E9%80%9A%E4%BF%A1%E4%B8%8E%E4%BA%92%E8%81%94%E7%BD%91/"/>
    
  </entry>
  
  <entry>
    <title>考前编程汇总</title>
    <link href="https://blog.mxne.cn/posts/a811.html"/>
    <id>https://blog.mxne.cn/posts/a811.html</id>
    <published>2024-03-21T06:14:07.000Z</published>
    <updated>2024-04-02T06:41:52.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="插入排序"><a href="#插入排序" class="headerlink" title="插入排序"></a>插入排序</h2><h3 id="1-0版本"><a href="#1-0版本" class="headerlink" title="1.0版本"></a>1.0版本</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[] = &#123;<span class="number">10</span>, <span class="number">2</span>, <span class="number">8</span>, <span class="number">7</span>, <span class="number">1</span>, <span class="number">5</span>, <span class="number">4</span>, <span class="number">3</span>, <span class="number">9</span>, <span class="number">6</span>&#125;;</span><br><span class="line">    <span class="type">int</span> sz = <span class="keyword">sizeof</span>(arr) / <span class="keyword">sizeof</span>(arr[<span class="number">0</span>]);</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt; sz; i++) <span class="comment">// 次数：元素个数 - 1</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = i; j &gt; <span class="number">0</span>; j--)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[j] &lt; arr[j - <span class="number">1</span>])</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="type">int</span> temp = arr[j];</span><br><span class="line">                arr[j] = arr[j - <span class="number">1</span>];</span><br><span class="line">                arr[j - <span class="number">1</span>] = temp;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; sz; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr[i]);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="2-0版本⭐"><a href="#2-0版本⭐" class="headerlink" title="2.0版本⭐"></a>2.0版本⭐</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[] = &#123;<span class="number">10</span>, <span class="number">2</span>, <span class="number">8</span>, <span class="number">7</span>, <span class="number">1</span>, <span class="number">5</span>, <span class="number">4</span>, <span class="number">3</span>, <span class="number">9</span>, <span class="number">6</span>&#125;;</span><br><span class="line">    <span class="type">int</span> sz = <span class="keyword">sizeof</span>(arr) / <span class="keyword">sizeof</span>(arr[<span class="number">0</span>]);</span><br><span class="line">    <span class="comment">// i和j用来控制循环，temp用来记录要插入的值</span></span><br><span class="line">    <span class="type">int</span> i, j, temp;      </span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt; sz; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        j = i - <span class="number">1</span>;</span><br><span class="line">        temp = arr[i];</span><br><span class="line">        <span class="comment">// 与前面数逐个比较寻找要插入的位置</span></span><br><span class="line">        <span class="keyword">while</span> (j &gt;= <span class="number">0</span> &amp;&amp; temp &lt; arr[j])  </span><br><span class="line">        &#123;</span><br><span class="line">            arr[j + <span class="number">1</span>] = arr[j];</span><br><span class="line">            j--;</span><br><span class="line">        &#125;</span><br><span class="line">        arr[j + <span class="number">1</span>] = temp;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; sz; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr[i]);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="选择排序"><a href="#选择排序" class="headerlink" title="选择排序"></a>选择排序</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[] = &#123;<span class="number">10</span>, <span class="number">2</span>, <span class="number">8</span>, <span class="number">7</span>, <span class="number">1</span>, <span class="number">5</span>, <span class="number">4</span>, <span class="number">3</span>, <span class="number">9</span>, <span class="number">6</span>&#125;;</span><br><span class="line">    <span class="type">int</span> sz = <span class="keyword">sizeof</span>(arr) / <span class="keyword">sizeof</span>(arr[<span class="number">0</span>]);</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; sz - <span class="number">1</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="type">int</span> min = i;</span><br><span class="line">        <span class="keyword">for</span> (j = i + <span class="number">1</span>; j &lt; sz; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[j] &lt; arr[min])</span><br><span class="line">            &#123;</span><br><span class="line">                min = j;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span> (i != min)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="type">int</span> temp = arr[i];</span><br><span class="line">            arr[i] = arr[min];</span><br><span class="line">            arr[min] = temp;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; sz; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr[i]);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="冒泡排序"><a href="#冒泡排序" class="headerlink" title="冒泡排序"></a>冒泡排序</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[] = &#123;<span class="number">10</span>, <span class="number">2</span>, <span class="number">8</span>, <span class="number">7</span>, <span class="number">1</span>, <span class="number">5</span>, <span class="number">4</span>, <span class="number">3</span>, <span class="number">9</span>, <span class="number">6</span>&#125;;</span><br><span class="line">    <span class="type">int</span> sz = <span class="keyword">sizeof</span>(arr) / <span class="keyword">sizeof</span>(arr[<span class="number">0</span>]);</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; sz - <span class="number">1</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; i &lt; sz - i - <span class="number">1</span>; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[j] &gt; arr[j + <span class="number">1</span>])</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="type">int</span> temp = arr[j];</span><br><span class="line">                arr[j] = arr[j + <span class="number">1</span>];</span><br><span class="line">                arr[j + <span class="number">1</span>] = tmep;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; sz; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr[i]);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="二分查找"><a href="#二分查找" class="headerlink" title="二分查找"></a>二分查找</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[] = &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>, <span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>, <span class="number">10</span>&#125;;</span><br><span class="line">    <span class="type">int</span> sz = <span class="keyword">sizeof</span>(arr) / <span class="keyword">sizeof</span>(arr[<span class="number">0</span>]);</span><br><span class="line">    <span class="type">int</span> search_num = <span class="number">7</span>;</span><br><span class="line">    <span class="type">int</span> left = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> right = sz - <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">while</span> (left &lt;= right)   <span class="comment">// 注意</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="type">int</span> mid = (left + right) / <span class="number">2</span>;</span><br><span class="line">        <span class="keyword">if</span> (arr[mid] &gt; search_num)</span><br><span class="line">        &#123;</span><br><span class="line">            right = mid - <span class="number">1</span>;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">else</span> <span class="keyword">if</span> (arr[mid] &lt; search_num)</span><br><span class="line">        &#123;</span><br><span class="line">            left = mid + <span class="number">1</span>;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">else</span></span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;index is %d&quot;</span>, mid);</span><br><span class="line">            <span class="keyword">break</span>;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="最大公约数"><a href="#最大公约数" class="headerlink" title="最大公约数"></a>最大公约数</h2><h3 id="辗转相除法"><a href="#辗转相除法" class="headerlink" title="辗转相除法"></a>辗转相除法</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">16</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">12</span>;</span><br><span class="line">    <span class="type">int</span> c;</span><br><span class="line">    <span class="keyword">while</span> (c = a % b)</span><br><span class="line">    &#123;</span><br><span class="line">        a = b;</span><br><span class="line">        b = c;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, b);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="相减法【大减小，直至相等】"><a href="#相减法【大减小，直至相等】" class="headerlink" title="相减法【大减小，直至相等】"></a>相减法【<strong>大减小，直至相等</strong>】</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">3139</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">1022</span>;</span><br><span class="line">    <span class="type">int</span> c;</span><br><span class="line">    <span class="keyword">while</span> (a != b)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (a &lt; b)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="type">int</span> temp = a;</span><br><span class="line">            a = b;</span><br><span class="line">            b = temp;</span><br><span class="line">        &#125;</span><br><span class="line">        c = a - b;</span><br><span class="line">        a = b;</span><br><span class="line">        b = c;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, b);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="斐波那契"><a href="#斐波那契" class="headerlink" title="斐波那契"></a>斐波那契</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 1 1 2 3 5 8 13 21 34</span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span> ⭐</span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">long</span> f1, f2;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    f1 = f2 = <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt;= <span class="number">20</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%12ld %12ld&quot;</span>, f1, f2);</span><br><span class="line">        <span class="comment">// 控制输出，每行四个</span></span><br><span class="line">        <span class="keyword">if</span> (i % <span class="number">2</span> == <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="comment">// 前两个月加起来赋值给第三个月</span></span><br><span class="line">        f1 = f1 + f2;</span><br><span class="line">        f2 = f1 + f2;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span> ⭐</span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">long</span> f1, f2, f;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    f1 = f2 = <span class="number">1</span>;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%12ld %12ld&quot;</span>, f1, f2);</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">3</span>; i &lt;= <span class="number">40</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        f = f1 + f2;</span><br><span class="line">        f1 = f2;</span><br><span class="line">        f2 = f;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%12ld &quot;</span>, f2);</span><br><span class="line">        <span class="keyword">if</span> (i % <span class="number">4</span> == <span class="number">0</span>)</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span> ▲</span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">long</span> f1, f2;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    f1 = f2 = <span class="number">1</span>;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%12ld %12ld&quot;</span>, f1, f2);</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">3</span>; i &lt;= <span class="number">40</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="comment">// 前两个月加起来赋值给第三个月f2</span></span><br><span class="line">        f2 = f1 + f2;</span><br><span class="line">        <span class="comment">// f1作为第二个月</span></span><br><span class="line">        f1 = f2 - f1;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%12ld &quot;</span>, f2);</span><br><span class="line">        <span class="keyword">if</span> (i % <span class="number">4</span> == <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="数组法"><a href="#数组法" class="headerlink" title="数组法"></a>数组法</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a[<span class="number">40</span>] = &#123;<span class="number">1</span>, <span class="number">1</span>&#125;;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%12d%12d&quot;</span>, a[<span class="number">0</span>], a[<span class="number">1</span>]);</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">2</span>; i &lt; <span class="number">40</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (i % <span class="number">4</span> == <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">        &#125;</span><br><span class="line">        a[i] = a[i - <span class="number">1</span>] + a[i - <span class="number">2</span>];</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%12d&quot;</span>, a[i]);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="递归"><a href="#递归" class="headerlink" title="递归"></a>递归</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">fib</span><span class="params">(<span class="type">int</span> x)</span>;</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt;= <span class="number">10</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, fib(i));</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="type">int</span> <span class="title function_">fib</span><span class="params">(<span class="type">int</span> x)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">if</span> (x &lt;= <span class="number">2</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">return</span> fib(x - <span class="number">1</span>) + fib(x - <span class="number">2</span>);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="统计单词个数"><a href="#统计单词个数" class="headerlink" title="统计单词个数"></a>统计单词个数</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> str[<span class="number">100</span>] = <span class="string">&quot;A A A A A &quot;</span>;</span><br><span class="line">    <span class="comment">// gets(str);</span></span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> word = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> num = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">while</span> (str[i] != <span class="string">&#x27;\0&#x27;</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (str[i] == <span class="string">&#x27; &#x27;</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            word = <span class="number">0</span>;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">else</span> <span class="keyword">if</span> (word == <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            num++;</span><br><span class="line">            word = <span class="number">1</span>;</span><br><span class="line">        &#125;</span><br><span class="line">        i++;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, num);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="鞍点"><a href="#鞍点" class="headerlink" title="鞍点"></a>鞍点</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> ROWS 3</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> COLS 3</span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">findSaddlePoint</span><span class="params">(<span class="type">int</span> matrix[ROWS][COLS])</span> &#123;</span><br><span class="line">    <span class="type">int</span> i, j, k;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROWS; i++) &#123;</span><br><span class="line">        <span class="type">int</span> row_max = matrix[i][<span class="number">0</span>];</span><br><span class="line">        <span class="type">int</span> col_index = <span class="number">0</span>;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">1</span>; j &lt; COLS; j++) &#123;</span><br><span class="line">            <span class="keyword">if</span> (matrix[i][j] &gt; row_max) &#123;</span><br><span class="line">                row_max = matrix[i][j];</span><br><span class="line">                col_index = j;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        <span class="type">int</span> col_min = matrix[<span class="number">0</span>][col_index];</span><br><span class="line">        <span class="keyword">for</span> (k = <span class="number">0</span>; k &lt; ROWS; k++) &#123;</span><br><span class="line">            <span class="keyword">if</span> (matrix[k][col_index] &lt; col_min) &#123;</span><br><span class="line">                col_min = matrix[k][col_index];</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        <span class="keyword">if</span> (row_max == col_min) &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;Saddle point found at (%d, %d): %d\n&quot;</span>, i, col_index, row_max);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span> &#123;</span><br><span class="line">    <span class="type">int</span> matrix[ROWS][COLS] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>&#125;,</span><br><span class="line">        &#123;<span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>&#125;,</span><br><span class="line">        &#123;<span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>&#125;</span><br><span class="line">    &#125;;</span><br><span class="line"></span><br><span class="line">    findSaddlePoint(matrix);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> ROW 5</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> COL 5</span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[ROW][COL] = &#123;<span class="number">0</span>&#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="type">int</span> max, min;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROW; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; COL; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;arr[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROW; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        max = <span class="number">0</span>;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">1</span>; j &lt; COL; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[i][max] &lt; arr[i][j])</span><br><span class="line">            &#123;</span><br><span class="line">                max = j;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        min = <span class="number">0</span>;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; ROW; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[j][max] &lt; arr[i][min])</span><br><span class="line">            &#123;</span><br><span class="line">                min = j;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span> (arr[i][max] == arr[max][min])</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, arr[i][max]);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="三角形面积和周长"><a href="#三角形面积和周长" class="headerlink" title="三角形面积和周长"></a>三角形面积和周长</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span><span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span><span class="string">&lt;math.h&gt;</span></span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a,b,c;</span><br><span class="line">    <span class="type">float</span> area,perimeter,s;</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d %d %d&quot;</span>,&amp;a,&amp;b,&amp;c);</span><br><span class="line">    s = (a+b+c)/<span class="number">2.0</span>;</span><br><span class="line">    area = (<span class="built_in">sqrt</span>(s*(s-a)*(s-b)*(s-c)));</span><br><span class="line">    perimeter = a+b+c;</span><br><span class="line">    <span class="keyword">if</span> (a+b&gt;c &amp;&amp; a+c&gt;b &amp;&amp; b+c&gt;a)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;area = %.2f; perimeter = %.2f&quot;</span>,area,perimeter);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;These sides do not correspond to a valid triangle&quot;</span>);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p><img src="E:/Blog/post-img/image-20240322143419582.png" alt="image-20240322143419582"></p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="comment">//在圆内：高度10，不在圆内：高度0；</span></span><br><span class="line"><span class="type">int</span> r = <span class="number">1</span>;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;请输入任意一点的坐标：&quot;</span>);</span><br><span class="line"><span class="type">int</span> a, b;</span><br><span class="line"><span class="type">int</span> x, y;</span><br><span class="line"><span class="type">float</span> c;</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">&quot;%d %d&quot;</span>, &amp;a, &amp;b);</span><br><span class="line">x = <span class="built_in">fabs</span>(a);</span><br><span class="line">y = <span class="built_in">fabs</span>(b);<span class="comment">//先将a和b的坐标取绝对值</span></span><br><span class="line">c = <span class="built_in">sqrt</span>((x - <span class="number">2</span>) * (x - <span class="number">2</span>) + (y - <span class="number">2</span>) * (y - x));<span class="comment">//sqrt是求平方根公式，c是求点到圆心的距离为多少，公式为根号下x1-x2的平方+y1-y2的平方</span></span><br><span class="line"><span class="keyword">if</span> (c &gt; r)</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;0&quot;</span>);</span><br><span class="line"><span class="keyword">else</span></span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;10&quot;</span>);<span class="comment">//当求出的点到圆心的距离小于等于半径，说明在圆塔上，高度为10</span></span><br><span class="line"><span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="幻方"><a href="#幻方" class="headerlink" title="幻方"></a>幻方</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> N 3</span></span><br><span class="line"><span class="type">int</span> <span class="title function_">fun</span><span class="params">(<span class="type">int</span> (*a)[N])</span></span><br><span class="line">&#123;</span><br><span class="line">   <span class="type">int</span> i, j, m1, m2, row, colum;</span><br><span class="line">   m1 = m2 = <span class="number">0</span>;</span><br><span class="line">   <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">   &#123;</span><br><span class="line">      j = N - i - <span class="number">1</span>;</span><br><span class="line">      m1 += a[i][i];</span><br><span class="line">      m2 += a[i][j];</span><br><span class="line">   &#125;</span><br><span class="line">   <span class="keyword">if</span> (m1 != m2) <span class="comment">// 判断主对角线和副对角线之和是否相等</span></span><br><span class="line">      <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">   <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">   &#123;</span><br><span class="line">      row = colum = <span class="number">0</span>;</span><br><span class="line">      <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; N; j++)</span><br><span class="line">      &#123;</span><br><span class="line">         row += a[i][j];</span><br><span class="line">         colum += a[j][i];</span><br><span class="line">      &#125;</span><br><span class="line">      <span class="keyword">if</span> ((row != colum) || (row != m1))</span><br><span class="line">         <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">   &#125;</span><br><span class="line">   <span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">   <span class="type">int</span> x[N][N], i, j;</span><br><span class="line">   <span class="built_in">printf</span>(<span class="string">&quot;Enter number for array:\n&quot;</span>);</span><br><span class="line">   <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">      <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; N; j++)</span><br><span class="line">         <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;x[i][j]);</span><br><span class="line">   <span class="built_in">printf</span>(<span class="string">&quot;Array:\n&quot;</span>);</span><br><span class="line">   <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">   &#123;</span><br><span class="line">      <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; N; j++)</span><br><span class="line">         <span class="built_in">printf</span>(<span class="string">&quot;%3d&quot;</span>, x[i][j]);</span><br><span class="line">      <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">   &#125;</span><br><span class="line">   <span class="keyword">if</span> (fun(x))</span><br><span class="line">      <span class="built_in">printf</span>(<span class="string">&quot;The Array is a magic square.\n&quot;</span>);</span><br><span class="line">   <span class="keyword">else</span></span><br><span class="line">      <span class="built_in">printf</span>(<span class="string">&quot;The Array isn&#x27;t a magic square.\n&quot;</span>);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="随机数"><a href="#随机数" class="headerlink" title="随机数"></a>随机数</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdlib.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;time.h&gt;</span></span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    srand((<span class="type">unsigned</span>)time(<span class="literal">NULL</span>)); <span class="comment">// 以时间作为种子</span></span><br><span class="line">    <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; <span class="number">10</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="type">int</span> randomNumber = rand();                            </span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, randomNumber);    </span><br><span class="line">    &#125;    </span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="负数在左，正数在右"><a href="#负数在左，正数在右" class="headerlink" title="负数在左，正数在右"></a>负数在左，正数在右</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">paritition</span><span class="params">(<span class="type">int</span> *arr, <span class="type">int</span> n)</span>&#123;</span><br><span class="line">    <span class="type">int</span> left = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> right = n - <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">while</span>(left &lt; right)&#123;</span><br><span class="line">        <span class="keyword">while</span>(left &lt; right &amp;&amp; arr[left] &lt; <span class="number">0</span>)&#123;</span><br><span class="line">            left ++;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">while</span>(left &lt; right &amp;&amp; arr[right] &gt; <span class="number">0</span>)&#123;</span><br><span class="line">            right --;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span>(left &lt; right)&#123;</span><br><span class="line">            <span class="type">int</span> temp = arr[i];</span><br><span class="line">            arr[i] = arr[j];</span><br><span class="line">            arr[j] = temp;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[<span class="number">9</span>] = &#123;<span class="number">-5</span>,<span class="number">3</span>,<span class="number">2</span>,<span class="number">-1</span>,<span class="number">4</span>,<span class="number">-3</span>,<span class="number">-4</span>,<span class="number">5</span>,<span class="number">9</span>&#125;;</span><br><span class="line">    paritition(arr, <span class="number">9</span>);</span><br><span class="line">    <span class="keyword">for</span>(<span class="type">int</span> i = <span class="number">0</span>; i &lt; <span class="number">9</span>; i ++)&#123;</span><br><span class="line">        <span class="built_in">cout</span>&lt;&lt;arr[i]&lt;&lt;<span class="string">&quot; &quot;</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">cout</span>&lt;&lt;<span class="built_in">endl</span>;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="报数"><a href="#报数" class="headerlink" title="报数"></a>报数</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> arr[<span class="number">100</span>] = &#123; <span class="number">0</span> &#125;;</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">&quot;%d %d&quot;</span>, &amp;m, &amp;n);   <span class="comment">// m 人数</span></span><br><span class="line"><span class="type">int</span> quit_num =<span class="number">0</span>, i=<span class="number">1</span>;</span><br><span class="line"><span class="keyword">for</span>(i=<span class="number">1</span>;i&lt;=m;i++)</span><br><span class="line">    arr[i] = i;</span><br><span class="line">i=<span class="number">1</span>;</span><br><span class="line"><span class="keyword">while</span>(m-quit_num&gt;=n)</span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">if</span>(arr[i]!=<span class="number">0</span>)</span><br><span class="line">    &#123;</span><br><span class="line">          a++</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span>(a%n==<span class="number">0</span>)</span><br><span class="line">    &#123;</span><br><span class="line">          <span class="built_in">printf</span>(........);</span><br><span class="line">          arr[i] = <span class="number">0</span>;</span><br><span class="line">          quit_num++;</span><br><span class="line">    &#125;</span><br><span class="line">    i++;</span><br><span class="line">    <span class="keyword">if</span>(i==m)</span><br><span class="line">         i=<span class="number">1</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="哥德巴赫猜想"><a href="#哥德巴赫猜想" class="headerlink" title="哥德巴赫猜想"></a>哥德巴赫猜想</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> num;</span><br><span class="line">    <span class="type">void</span> <span class="title function_">fun</span><span class="params">(<span class="type">int</span> num)</span>;</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;num);</span><br><span class="line">    fun(num);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="type">void</span> <span class="title function_">fun</span><span class="params">(<span class="type">int</span> num)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i,j;</span><br><span class="line">    <span class="type">int</span> <span class="title function_">sushu</span><span class="params">(<span class="type">int</span> num)</span>;</span><br><span class="line">    <span class="type">void</span> <span class="title function_">fun</span><span class="params">(<span class="type">int</span> num)</span>;</span><br><span class="line">    <span class="keyword">for</span>(i=<span class="number">2</span>;i&lt;num;i++)   <span class="comment">// 2也是素数</span></span><br><span class="line">    &#123;</span><br><span class="line">         j = num - i;</span><br><span class="line">         <span class="keyword">if</span>(sushu(i)==<span class="number">1</span>&amp;&amp;sushu(j)==<span class="number">1</span>)</span><br><span class="line">         &#123;</span><br><span class="line">                <span class="built_in">printf</span>(<span class="string">&quot;%d %d&quot;</span>, i, j);</span><br><span class="line">                <span class="keyword">return</span>;</span><br><span class="line">         &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="type">int</span> <span class="title function_">sushu</span><span class="params">(<span class="type">int</span> num)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">for</span>(i=<span class="number">2</span>;i&lt;num;i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span>(num%i==<span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="汉诺塔"><a href="#汉诺塔" class="headerlink" title="汉诺塔"></a>汉诺塔</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">hanoi</span><span class="params">(<span class="type">int</span> n, <span class="type">char</span> a, <span class="type">char</span> b, <span class="type">char</span> c)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">if</span> (n == <span class="number">1</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%c --&gt; %c\n&quot;</span>, a, c);  <span class="comment">//只有1块的时候，直接从 a 移动到 c</span></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        hanoi(n - <span class="number">1</span>, a, c, b);  <span class="comment">//将 n - 1 块从 a 移到到 c，借助 b</span></span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%c --&gt; %c\n&quot;</span>, a, c); <span class="comment">//把 a 中剩下的那一块，移动到 c</span></span><br><span class="line">        hanoi(n - <span class="number">1</span>, b, a, c);  <span class="comment">//将 n - 1 块从 b 移动到 c，借助 a</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> n;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入盘子的个数：&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;n);</span><br><span class="line">    hanoi(n, <span class="string">&#x27;A&#x27;</span>, <span class="string">&#x27;B&#x27;</span>, <span class="string">&#x27;C&#x27;</span>);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="球反弹"><a href="#球反弹" class="headerlink" title="球反弹"></a>球反弹</h2><p>一球从100米高度自由落下，每次落地后反跳回原高度的一半；再落下，求它在第10次落地时，共经过多少米？第10次反弹多高？ </p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">float</span> sn = <span class="number">100.0</span>, hn = sn / <span class="number">2</span>;</span><br><span class="line">    <span class="type">int</span> n;</span><br><span class="line">    <span class="keyword">for</span> (n = <span class="number">2</span>; n &lt;= <span class="number">10</span>; n++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="comment">// 第n次落地时共经过的米数</span></span><br><span class="line">        sn = sn + <span class="number">2</span> * hn;</span><br><span class="line">        <span class="comment">// 第n次反跳高度</span></span><br><span class="line">        hn = hn / <span class="number">2</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;the total of road is %f\n&quot;</span>, sn);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;the tenth is %f meter\n&quot;</span>, hn);</span><br><span class="line">    </span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="猴子吃桃"><a href="#猴子吃桃" class="headerlink" title="猴子吃桃"></a>猴子吃桃</h2><p>猴子吃桃问题：猴子第一天摘下若干个桃子，当即吃了一半，还不瘾，又多吃了一个,第二天早上又将剩下的桃子吃掉一半，又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时，见只剩下一个桃子了。求第一天共摘了多少。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"></span><br></pre></td></tr></table></figure><h2 id="a-aa-aaa-aaaa"><a href="#a-aa-aaa-aaaa" class="headerlink" title="a+aa+aaa+aaaa"></a>a+aa+aaa+aaaa</h2><p>计算 s=a+aa+aaa+aaaa+aa…a的值，其中a是一个数字。</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="type">void</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i, j, k, sum = <span class="number">0</span>, n = <span class="number">1</span>, m, a = <span class="number">0</span>;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;输入累加到几位数:&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;j);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;输入累加数字:&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;k);</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt;= j; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        sum = sum + k * n; <span class="comment">// 　也可以是sum=sum*10+k;</span></span><br><span class="line">        n = n * <span class="number">10</span>;</span><br><span class="line">        a = a + sum;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;该数为%d\n&quot;</span>, a);</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="有一分数序列：2-1，3-2，5-3，8-5，13-8，21-13…求出这个数列的前20项之和"><a href="#有一分数序列：2-1，3-2，5-3，8-5，13-8，21-13…求出这个数列的前20项之和" class="headerlink" title="有一分数序列：2/1，3/2，5/3，8/5，13/8，21/13…求出这个数列的前20项之和"></a>有一分数序列：2/1，3/2，5/3，8/5，13/8，21/13…求出这个数列的前20项之和</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> n, t, number = <span class="number">20</span>;</span><br><span class="line">    <span class="type">float</span> a = <span class="number">2</span>, b = <span class="number">1</span>, s = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (n = <span class="number">1</span>; n &lt;= number; n++)</span><br><span class="line">    &#123;</span><br><span class="line">        s = s + a / b;</span><br><span class="line">        t = a;</span><br><span class="line">        a = a + b;</span><br><span class="line">        b = t;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;sum is %9.6f\n&quot;</span>, s);</span><br><span class="line">    </span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="递归-1"><a href="#递归-1" class="headerlink" title="递归"></a>递归</h2><h3 id="进制转换"><a href="#进制转换" class="headerlink" title="进制转换"></a>进制转换</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span><span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="comment">//十进制转八进制 </span></span><br><span class="line"><span class="type">int</span> <span class="title function_">Translate</span><span class="params">(<span class="type">int</span> n)</span>;</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> n;</span><br><span class="line"><span class="keyword">do</span>&#123;             <span class="comment">//循环语句所用到的int型的n,必须定义在循环之前。</span></span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;请输入整数n:&quot;</span>);</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>,&amp;n);</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;转化为八进制是:&quot;</span>);</span><br><span class="line">Translate(n);</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">&#125;<span class="keyword">while</span>(n!=<span class="number">10</span>);</span><br><span class="line"></span><br><span class="line"> &#125;  </span><br><span class="line"><span class="type">int</span> <span class="title function_">Translate</span><span class="params">(<span class="type">int</span> n)</span>&#123;</span><br><span class="line"> <span class="type">int</span> i,j;</span><br><span class="line"> <span class="keyword">if</span>(n==<span class="number">0</span>)</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line"> <span class="keyword">else</span>&#123;</span><br><span class="line"> i=n%<span class="number">8</span>;<span class="comment">//z求余取结果</span></span><br><span class="line"> j=n/<span class="number">8</span>;<span class="comment">//求除数，进行下一级的运算</span></span><br><span class="line"> Translate(j);</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>,i);</span><br><span class="line">&#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="数字逆序"><a href="#数字逆序" class="headerlink" title="数字逆序"></a>数字逆序</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span><span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="type">void</span> <span class="title function_">print</span><span class="params">(<span class="type">int</span> n)</span><span class="comment">//递归函数，取余</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="keyword">if</span>(n==<span class="number">0</span>) <span class="keyword">return</span>;</span><br><span class="line"><span class="keyword">else</span>&#123;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>,n%<span class="number">10</span>);<span class="comment">//取余并输出</span></span><br><span class="line">print(n/<span class="number">10</span>);<span class="comment">//递归调用，实现逆序输出</span></span><br><span class="line"><span class="keyword">return</span>;</span><br><span class="line">&#125;</span><br><span class="line">&#125;</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="type">long</span> n;<span class="comment">//题目要求整型就好int也OK</span></span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>,&amp;n);</span><br><span class="line">print(n);<span class="comment">//调用递归函数</span></span><br><span class="line"><span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="阶乘"><a href="#阶乘" class="headerlink" title="阶乘"></a>阶乘</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span><span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="type">int</span> <span class="title function_">fun</span><span class="params">(<span class="type">int</span> a)</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="keyword">if</span>(a&lt;=<span class="number">1</span>)</span><br><span class="line"><span class="keyword">return</span> <span class="number">1</span>;</span><br><span class="line"><span class="keyword">return</span>(a*fun(a<span class="number">-1</span>));</span><br><span class="line">&#125;</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="type">int</span> a,b;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;input a num:\n&quot;</span>);</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>,&amp;a);</span><br><span class="line">b=fun(a);</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;%d!=%d\n&quot;</span>,a,b);</span><br><span class="line"><span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="算年龄"><a href="#算年龄" class="headerlink" title="算年龄"></a>算年龄</h3><p>有五个人围坐在一起，问第五个人多大了，他说标的四个人大2岁；问四个人多大了，他说比第三个人大2岁，依次类推，前一个人始终比后一个人小2岁，已知第一个人10岁，求第n个人的年龄。</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">s</span><span class="params">(<span class="type">int</span> n)</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="type">int</span> age;</span><br><span class="line"><span class="keyword">if</span>(n==<span class="number">1</span>)</span><br><span class="line">age=<span class="number">10</span>; <span class="comment">//出口</span></span><br><span class="line"><span class="keyword">else</span> <span class="keyword">if</span>(n!=<span class="number">1</span>)&#123; </span><br><span class="line">age=s(n<span class="number">-1</span>)+<span class="number">2</span>;<span class="comment">//第二个人比前一个人大两岁</span></span><br><span class="line">&#125; </span><br><span class="line"><span class="keyword">return</span> age;</span><br><span class="line"> &#125; </span><br><span class="line"> <span class="type">int</span> <span class="title function_">main</span><span class="params">()</span>&#123;</span><br><span class="line"> <span class="type">int</span> m;</span><br><span class="line"> <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>,&amp;m);</span><br><span class="line"> <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>,s(m));</span><br><span class="line"> <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="百钱买百鸡"><a href="#百钱买百鸡" class="headerlink" title="百钱买百鸡"></a>百钱买百鸡</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span><span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="type">void</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> x,y,z;</span><br><span class="line">    <span class="keyword">for</span>(x=<span class="number">0</span>; x&lt;=<span class="number">20</span>; x++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span>(y=<span class="number">0</span>; y&lt;=<span class="number">33</span>; y++)</span><br><span class="line">        &#123;</span><br><span class="line">            z=<span class="number">100</span>-x-y;</span><br><span class="line">            <span class="keyword">if</span>(<span class="number">5</span>*x+<span class="number">3</span>*y+z/<span class="number">3</span>==<span class="number">100</span>)</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="built_in">printf</span>(<span class="string">&quot;公鸡=%d 母鸡=%d 小鸡=%d\n&quot;</span>,x,y,z);</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="求一元二次方程的根"><a href="#求一元二次方程的根" class="headerlink" title="求一元二次方程的根"></a>求一元二次方程的根</h2><p><img src="E:/Blog/post-img/f43010eb07684ccba0966fbd27611676.png" alt="img"></p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="comment">// 使用开根号 sqrt(d) 函数时，需要添加此头文件</span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;math.h&gt;</span></span></span><br><span class="line"> </span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">float</span> a , b , c, d, x1, x2;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请依次输入三个系数: &quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%f %f %f&quot;</span>, &amp;a,&amp;b,&amp;c);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">if</span>(a != <span class="number">0</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        d = b * b - <span class="number">4</span> * a * c;                        <span class="comment">// 根的判别式</span></span><br><span class="line">        <span class="keyword">if</span>(d &gt;= <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            x1 = ((-b + <span class="built_in">sqrt</span>(d)) / (<span class="number">2</span> * a));            <span class="comment">// 求根公式</span></span><br><span class="line">            x2 = ((-b - <span class="built_in">sqrt</span>(d)) / (<span class="number">2</span> * a));</span><br><span class="line"> </span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;x1 = %.2f;x2 = %.2f&quot;</span>, x1, x2);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">else</span></span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;方程无根&quot;</span>);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;输入的第一个值不合法，请重新输入！&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line"> </span><br><span class="line"> </span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="乘法口诀表"><a href="#乘法口诀表" class="headerlink" title="乘法口诀表"></a>乘法口诀表</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span><span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">for</span> (<span class="type">int</span> j = <span class="number">1</span>; j &lt;= <span class="number">9</span>; j++) &#123;</span><br><span class="line">        <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">1</span>; i &lt;= <span class="number">9</span>; i++) &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d*%d=%d  &quot;</span>, i, j, i * j);</span><br><span class="line">            <span class="keyword">if</span> (i == j) &#123;</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;插入排序&quot;&gt;&lt;a href=&quot;#插入排序&quot; class=&quot;headerlink&quot; title=&quot;插入排序&quot;&gt;&lt;/a&gt;插入排序&lt;/h2&gt;&lt;h3 id=&quot;1-0版本&quot;&gt;&lt;a href=&quot;#1-0版本&quot; class=&quot;headerlink&quot; title=&quot;1.0版本&quot;&gt;</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="编程题" scheme="https://blog.mxne.cn/tags/%E7%BC%96%E7%A8%8B%E9%A2%98/"/>
    
  </entry>
  
  <entry>
    <title>三角形面积</title>
    <link href="https://blog.mxne.cn/posts/4e8f.html"/>
    <id>https://blog.mxne.cn/posts/4e8f.html</id>
    <published>2023-11-17T08:11:17.000Z</published>
    <updated>2023-11-17T11:51:08.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="题目"><a href="#题目" class="headerlink" title="题目"></a>题目</h2><p>输入平面上任意三个点的坐标(x1,y1)、 (x2,y2)、 (x3,y3),检验它们能否构成三角形。如果3个点能构成一个三角形，输出周长和面积（保留2位小数）；否则输出“Impossible”。</p><h2 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h2><p><img src="https://bu.dusays.com/2023/11/17/655720f1493a4.png" alt="image-20231117114233147"></p><p>解决这题的核心在于利用<strong>勾股定理</strong>计算三个给定点所构成的三角形的边长。计算完三条边的长度后，我们必须进行判断，确保这三条边满足构成三角形的条件，即任意两边之和大于第三边。一旦确认可以构成三角形，我们就可以使用<strong>海伦公式</strong>来求解三角形的面积，海伦公式具体如下：</p><p><img src="https://bu.dusays.com/2023/11/17/655720fe6b7db.png" alt="image-20231117114246848"></p><h2 id="代码实现"><a href="#代码实现" class="headerlink" title="代码实现"></a>代码实现</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;math.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="type">double</span> x1, y1, x2, y2, x3, y3;</span><br><span class="line"><span class="type">double</span> p, res1, res2;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;请输入构成三角形的三个点：&quot;</span>);</span><br><span class="line"><span class="built_in">scanf</span>(<span class="string">&quot;%lf%lf,%lf%lf,%lf%lf&quot;</span>, &amp;x1, &amp;y1, &amp;x2, &amp;y2, &amp;x3, &amp;y3);</span><br><span class="line"><span class="type">double</span> a = <span class="built_in">sqrt</span>(<span class="built_in">pow</span>(x1 - x2, <span class="number">2.0</span>) + <span class="built_in">pow</span>(y1 - y2, <span class="number">2.0</span>));</span><br><span class="line"><span class="type">double</span> b = <span class="built_in">sqrt</span>(<span class="built_in">pow</span>(x1 - x3, <span class="number">2.0</span>) + <span class="built_in">pow</span>(y1 - y3, <span class="number">2.0</span>));</span><br><span class="line"><span class="type">double</span> c = <span class="built_in">sqrt</span>(<span class="built_in">pow</span>(x2 - x3, <span class="number">2.0</span>) + <span class="built_in">pow</span>(y2 - y3, <span class="number">2.0</span>));</span><br><span class="line"><span class="keyword">if</span> ((a + b &gt; c) &amp;&amp; (a + c &gt; b) &amp;&amp; (b + c) &gt; c)</span><br><span class="line">&#123;</span><br><span class="line">res1 = a + b + c;    <span class="comment">// 周长</span></span><br><span class="line">p = (a + b + c) / <span class="number">2</span>;</span><br><span class="line">res2 = <span class="built_in">sqrt</span>(p * (p - a) * (p - b) * (p - c));    <span class="comment">// 面积</span></span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;周长为：%.2lf\n面积为：%.2lf&quot;</span>, res1, res2);</span><br><span class="line">&#125;</span><br><span class="line"><span class="keyword">else</span></span><br><span class="line">&#123;</span><br><span class="line"><span class="built_in">printf</span>(<span class="string">&quot;Impossible&quot;</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;题目&quot;&gt;&lt;a href=&quot;#题目&quot; class=&quot;headerlink&quot; title=&quot;题目&quot;&gt;&lt;/a&gt;题目&lt;/h2&gt;&lt;p&gt;输入平面上任意三个点的坐标(x1,y1)、 (x2,y2)、 (x3,y3),检验它们能否构成三角形。如果3个点能构成一个三角形，输出周长和</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="编程题" scheme="https://blog.mxne.cn/tags/%E7%BC%96%E7%A8%8B%E9%A2%98/"/>
    
  </entry>
  
  <entry>
    <title>鞍点</title>
    <link href="https://blog.mxne.cn/posts/6c85.html"/>
    <id>https://blog.mxne.cn/posts/6c85.html</id>
    <published>2023-11-17T08:11:06.000Z</published>
    <updated>2023-11-24T06:29:58.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="题目"><a href="#题目" class="headerlink" title="题目"></a>题目</h2><p>找出具有m行n列二维数组Array的“鞍点”，即该位置上的元素在该行上最大，在该列上最小，其中1&lt;=m,n&lt;=10。</p><h2 id="分析"><a href="#分析" class="headerlink" title="分析"></a>分析</h2><p>方法1：遍历每个元素，检查它是否在其所在行中是最大值，并且在所在列中是最小值。通过比较当前元素与其所在行的其他元素和所在列的其他元素来判断。如果某个元素同时满足这两个条件，则它是一个鞍点，将其位置记录下来。</p><p>方法2：对于每一行，找出最大的数，然后在该数所在的列中找到最小的数。如果行中的最大数与列中的最小数相等，那么这个数就是鞍点。依次检查每一行，记录所有满足条件的鞍点位置。</p><h2 id="代码实现"><a href="#代码实现" class="headerlink" title="代码实现"></a>代码实现</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> MAX_ROW 10</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> MAX_COL 10</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 方法1：</span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[MAX_ROW][MAX_COL];</span><br><span class="line">    <span class="type">int</span> n, m; <span class="comment">// n行 m列</span></span><br><span class="line">    <span class="type">int</span> i, j, k;</span><br><span class="line">    <span class="comment">// 输入数组的行数和列数</span></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;Enter the number of rows (1-10): &quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;m);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;Enter the number of columns (1-10): &quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;n);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;Enter the elements of the array:\n&quot;</span>);</span><br><span class="line">    <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; m; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (<span class="type">int</span> j = <span class="number">0</span>; j &lt; n; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;arr[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; n; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; m; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="type">int</span> isSaddlePoint = <span class="number">1</span>;</span><br><span class="line">            <span class="comment">// 检查是否为行最大值</span></span><br><span class="line">            <span class="keyword">for</span> (k = <span class="number">0</span>; k &lt; n; k++)</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="keyword">if</span> (arr[i][j] &lt; arr[i][k])</span><br><span class="line">                &#123;</span><br><span class="line">                    isSaddlePoint = <span class="number">0</span>;</span><br><span class="line">                    <span class="keyword">break</span>;</span><br><span class="line">                &#125;</span><br><span class="line">            &#125;</span><br><span class="line">            <span class="comment">// 检查是否为行最小值</span></span><br><span class="line">            <span class="keyword">for</span> (k = <span class="number">0</span>; k &lt; m; k++)</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="keyword">if</span> (arr[i][j] &gt; arr[k][j])</span><br><span class="line">                &#123;</span><br><span class="line">                    isSaddlePoint = <span class="number">0</span>;</span><br><span class="line">                    <span class="keyword">break</span>;</span><br><span class="line">                &#125;</span><br><span class="line">            &#125;</span><br><span class="line">            <span class="keyword">if</span> (isSaddlePoint)</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="built_in">printf</span>(<span class="string">&quot;Saddle point found at (%d, %d): %d\n&quot;</span>, i + <span class="number">1</span>, j + <span class="number">1</span>, arr[i][j]);</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">// 方法2：</span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[MAX_ROW][MAX_COL];</span><br><span class="line">    <span class="type">int</span> n, m; <span class="comment">// n行 m列</span></span><br><span class="line">    <span class="type">int</span> i, j, k;</span><br><span class="line">    <span class="comment">// 输入数组的行数和列数</span></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;Enter the number of rows (1-10): &quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;m);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;Enter the number of columns (1-10): &quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;n);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;Enter the elements of the array:\n&quot;</span>);</span><br><span class="line">    <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; m; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (<span class="type">int</span> j = <span class="number">0</span>; j &lt; n; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;arr[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; m; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="type">int</span> max = <span class="number">0</span>;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">1</span>; j &lt; n; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[i][max] &lt; arr[i][j])</span><br><span class="line">            &#123;</span><br><span class="line">                max = j;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="type">int</span> min = <span class="number">0</span>;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">1</span>; j &lt; m; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[min][max] &gt; arr[j][max])</span><br><span class="line">            &#123;</span><br><span class="line">                min = j;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span> (arr[i][max] == arr[min][max])</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;Saddle point found at (%d, %d): %d\n&quot;</span>, i + <span class="number">1</span>, max + <span class="number">1</span>, arr[i][max]);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;题目&quot;&gt;&lt;a href=&quot;#题目&quot; class=&quot;headerlink&quot; title=&quot;题目&quot;&gt;&lt;/a&gt;题目&lt;/h2&gt;&lt;p&gt;找出具有m行n列二维数组Array的“鞍点”，即该位置上的元素在该行上最大，在该列上最小，其中1&amp;lt;=m,n&amp;lt;=10。&lt;/p&gt;
&lt;</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="编程题" scheme="https://blog.mxne.cn/tags/%E7%BC%96%E7%A8%8B%E9%A2%98/"/>
    
  </entry>
  
  <entry>
    <title>矩阵相乘</title>
    <link href="https://blog.mxne.cn/posts/bd47.html"/>
    <id>https://blog.mxne.cn/posts/bd47.html</id>
    <published>2023-10-14T06:19:00.000Z</published>
    <updated>2023-10-20T04:39:32.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="矩阵相乘"><a href="#矩阵相乘" class="headerlink" title="矩阵相乘"></a>矩阵相乘</h2><p>矩阵相乘：确保第一个矩阵（A矩阵）的列数等于第二个矩阵（B矩阵）的行数。如果A矩阵的大小是m × n，B矩阵的大小是n × t，那么它们可以相乘，得到的矩阵C的大小将是m × t。<u>矩阵C中的每个元素是矩阵A对应行的元素与矩阵B对应列的元素的乘积之和。</u></p><p><img src="https://bu.dusays.com/2023/10/14/652a34501d334.png" alt="image-20231014113746942"></p><p>具体计算过程可以看以下图</p><p><img src="https://bu.dusays.com/2023/10/14/652a34509e0c4.png" alt="image-20231014120013002"></p><h2 id="代码实现"><a href="#代码实现" class="headerlink" title="代码实现"></a>代码实现</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> A[<span class="number">3</span>][<span class="number">2</span>] = &#123;&#123;<span class="number">1</span>, <span class="number">2</span>&#125;,</span><br><span class="line">                   &#123;<span class="number">3</span>, <span class="number">4</span>&#125;,</span><br><span class="line">                   &#123;<span class="number">5</span>, <span class="number">6</span>&#125;&#125;;</span><br><span class="line">    <span class="type">int</span> B[<span class="number">2</span>][<span class="number">4</span>] = &#123;&#123;<span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>, <span class="number">10</span>&#125;,</span><br><span class="line">                   &#123;<span class="number">11</span>, <span class="number">12</span>, <span class="number">13</span>, <span class="number">14</span>&#125;&#125;;</span><br><span class="line">    <span class="type">int</span> m = <span class="number">3</span>;         <span class="comment">// C矩阵的行</span></span><br><span class="line">    <span class="type">int</span> t = <span class="number">4</span>;         <span class="comment">// C矩阵的列</span></span><br><span class="line">    <span class="type">int</span> C[<span class="number">3</span>][<span class="number">4</span>] = &#123;<span class="number">0</span>&#125;; <span class="comment">// 注意：定义数组时，大小不可为变量，只可为常量</span></span><br><span class="line">    <span class="comment">// 矩阵相乘</span></span><br><span class="line">    <span class="type">int</span> i, j, k;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; m; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; t; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">for</span> (k = <span class="number">0</span>; k &lt; <span class="number">2</span>; k++) <span class="comment">// k用来遍历矩阵A的列和矩阵B的行</span></span><br><span class="line">            &#123;</span><br><span class="line">                C[i][j] = C[i][j] + A[i][k] * B[j][k];</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; m; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; t; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, C[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;矩阵相乘&quot;&gt;&lt;a href=&quot;#矩阵相乘&quot; class=&quot;headerlink&quot; title=&quot;矩阵相乘&quot;&gt;&lt;/a&gt;矩阵相乘&lt;/h2&gt;&lt;p&gt;矩阵相乘：确保第一个矩阵（A矩阵）的列数等于第二个矩阵（B矩阵）的行数。如果A矩阵的大小是m × n，B矩阵的大小是n × </summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="编程题" scheme="https://blog.mxne.cn/tags/%E7%BC%96%E7%A8%8B%E9%A2%98/"/>
    
  </entry>
  
  <entry>
    <title>计算机组成原理</title>
    <link href="https://blog.mxne.cn/posts/cacd.html"/>
    <id>https://blog.mxne.cn/posts/cacd.html</id>
    <published>2023-09-30T10:14:50.000Z</published>
    <updated>2023-09-29T03:23:46.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="计算机的组成和分类"><a href="#计算机的组成和分类" class="headerlink" title="计算机的组成和分类"></a>计算机的组成和分类</h2><h3 id="计算机的发展"><a href="#计算机的发展" class="headerlink" title="计算机的发展"></a>计算机的发展</h3><p>“代”的划分是以计算机的主机所使用的 <strong>元器件为依据</strong></p><div class="table-container"><table><thead><tr><th style="text-align:center">代别</th><th style="text-align:center">年代</th><th style="text-align:center">使用的元器件</th><th style="text-align:center">使用的软件类型</th><th style="text-align:center">主要应用领域</th></tr></thead><tbody><tr><td style="text-align:center">第1代</td><td style="text-align:center">1940’s 中期～1950’s 末期</td><td style="text-align:center">CPU：电子管<br/>内存：磁鼓</td><td style="text-align:center">使用机器语言和汇编语言编写程序</td><td style="text-align:center">科学和工程计算</td></tr><tr><td style="text-align:center">第2代</td><td style="text-align:center">1950’s 中、后期～1960’s 中期</td><td style="text-align:center">CPU：晶体管<br/>内存：磁芯</td><td style="text-align:center">使用FORTRAN 等高级程序设计语言</td><td style="text-align:center">开始广泛应用于数据处理领域</td></tr><tr><td style="text-align:center">第3代</td><td style="text-align:center">1950’s 中、后期～1960’s 中期</td><td style="text-align:center">CPU：SSI，MSI<br/>内存：SSI，MSI 的半导体存储器</td><td style="text-align:center">操作系统、数据库管理系统等开始使用</td><td style="text-align:center">在科学计算、数据处理、工业控制等领域得到广泛应用</td></tr><tr><td style="text-align:center">第4代</td><td style="text-align:center">1950’s 中、后期～1960’s 中期</td><td style="text-align:center">CPU：LSI、VLSI<br/>内存：LSI、VLSI 的半导体存储器</td><td style="text-align:center">软件开发工具和平台、分布式计算、网络软件等开始广泛使用</td><td style="text-align:center">各行各业，家庭和个人开始使用计算机（如PC 机）</td></tr></tbody></table></div><p>1946年，世界上第一台 <strong>数字电子计算 </strong>机是由 宾夕法尼亚化学【宾州大学】研制的 <strong>“埃尼阿克”(ENIAC)</strong>【电子管】</p><p>计算机应用模式发展阶段：集中计算模式、分散计算模式、网络计算模式、云计算（目前）</p><h3 id="计算机的特点"><a href="#计算机的特点" class="headerlink" title="计算机的特点"></a>计算机的特点</h3><ul><li>速度快，通用性强</li><li>具有多种多样的信息处理能力</li><li>存储容量大，存取速度高</li><li>具有互联互通互操作的特性</li><li>体积小，功耗低，携带方便</li></ul><h3 id="计算机的逻辑组成"><a href="#计算机的逻辑组成" class="headerlink" title="计算机的逻辑组成"></a>计算机的逻辑组成</h3><p>从逻辑上(功能上)来讲，计算机硬件主要包括 <u>中央处理器(CPU)、主存储器、辅助存储器、输入设备和输出设备</u>。CPU 和 主存储器作为计算机的主机部分，输入/输出设备和辅助存储器等作为计算机的外围设备(外设)。</p><p><strong>计算机系统</strong> 由 <strong>软件</strong>和<strong>硬件</strong>组成</p><p><strong>计算机硬件</strong>是计算机系统中 <strong>所有实际物理装置的总称</strong></p><p><strong>计算几软件</strong>是指在计算机中运行的各种 <strong>程序</strong> 及其处理的 <strong>数据和相关的文档</strong></p><h4 id="中央处理器【CPU】"><a href="#中央处理器【CPU】" class="headerlink" title="中央处理器【CPU】"></a>中央处理器【CPU】</h4><p>定义：计算机中有多个处理器，其中用于承担系统软件和应用软件运行的处理器称为CPU</p><p>组成：运算器+控制器+寄存器</p><p>处理器 &gt; 微处理器 &gt; cpu，gpu….</p><p>微处理器 != cpu</p><blockquote><p>并行处理 VS 多任务处理</p><p>并行处理：同一个任务被分解成多个任务，多个CPU核心同时处理【神威·太湖之光】</p><p>多任务处理：多个不同的任务不同时间段【时间片轮转】</p></blockquote><h4 id="主存储器-和-辅助存储器"><a href="#主存储器-和-辅助存储器" class="headerlink" title="主存储器 和 辅助存储器"></a>主存储器 和 辅助存储器</h4><div class="table-container"><table><thead><tr><th>辅助存储器(俗称外存，简称辅存)</th><th>内存储器(简称内存或主存)</th></tr></thead><tbody><tr><td>存取速度<strong>慢</strong>，成本<strong>低</strong>、容量很<strong>大</strong></td><td>存取速度<strong>快</strong>，成本<strong>高</strong>、容量相对较<strong>小</strong></td></tr><tr><td>按 <strong>数据块</strong> 编址和存取</td><td>按 <strong>字节</strong> 编址和存取</td></tr><tr><td>不与 CPU 直接连接，计算机运行程序时，外存中的程序及相关数据必须先传送到内存，然后才能被CPU 使用。</td><td><strong>直接与 CPU 连接</strong>，CPU(指令)可以对内存中的指令及数据进行读、写操作。</td></tr><tr><td>属于非易失性存储器，<strong>断电后信息保持</strong>，用于长久存放系统中几乎所有的信息</td><td>大多属于易失性存储器，<strong>断电后信息消失</strong>，用于临时存放正在运行的程序和数据</td></tr></tbody></table></div><h4 id="输入设备"><a href="#输入设备" class="headerlink" title="输入设备"></a>输入设备</h4><p>用来向计算机输入的设备</p><p>不论信息的原始形态如何，输入到计算机中的信息都使用二进制来表示</p><p>设备：键盘、鼠标、触摸屏、扫描仪、麦克风和传感器</p><h4 id="输出设备"><a href="#输出设备" class="headerlink" title="输出设备"></a>输出设备</h4><p>把计算机中的二进位信息转换成人可感知的形式</p><p>设备：显示器、打印机、绘图仪</p><h4 id="总线"><a href="#总线" class="headerlink" title="总线"></a>总线</h4><p>定义：用于连接CPU、内存、外存和各种I/O设备并在它们之间传输信息的一组<strong>共享</strong>/公用的传输线及其控制电路。</p><p>特点：共享、高速</p><h5 id="总线的分类"><a href="#总线的分类" class="headerlink" title="总线的分类"></a>总线的分类</h5><ol><li>按传输设备</li></ol><p>CPU总线/前端总线/高速总线：连接 <strong>CPU 和 主存</strong> 的总线 </p><p>I/O总线：连接 <strong>主存 和 I/O设备</strong>(包括辅存)的总线【PCI和PCI-E】</p><ol><li>按传输信号</li></ol><p>数据总线：决定字长，用于传输数据，单向</p><p>地址总线：决定寻址空间容量，用于寻址，单向</p><p>控制总线：用于传输控制信号，双向</p><ol><li>按数据传输方式</li></ol><p>串行总线：串口：USB【4线】、IEEE1394【6线】、SATA</p><p>并行总线：并口：IDE(PATA)</p><h3 id="计算机的分类"><a href="#计算机的分类" class="headerlink" title="计算机的分类"></a>计算机的分类</h3><ol><li><p>按照内部逻辑结构：16位机、32位机、64位机</p></li><li><p>按计算机性能和用途</p></li></ol><h4 id="巨型计算机"><a href="#巨型计算机" class="headerlink" title="巨型计算机"></a>巨型计算机</h4><p>采用大规模并行处理体系结构【多个CPU】</p><p>应用：科研、石油勘测、天气预报等</p><p>神威·太湖之光</p><h4 id="大型计算机"><a href="#大型计算机" class="headerlink" title="大型计算机"></a>大型计算机</h4><p>虚拟化技术，同时运行多个操作系统</p><p>应用：企业级或政府的服务器</p><h4 id="服务器【小型计计算机】"><a href="#服务器【小型计计算机】" class="headerlink" title="服务器【小型计计算机】"></a>服务器【小型计计算机】</h4><p>应用：中小型企业</p><h4 id="个人计算机【pc机-微型计算机】"><a href="#个人计算机【pc机-微型计算机】" class="headerlink" title="个人计算机【pc机/微型计算机】"></a>个人计算机【pc机/微型计算机】</h4><p>个人计算机分为：台式机 和 便携机</p><p>应用：家用或办公室</p><blockquote><p>扩展：工作站：显卡强大，操作系统是Unix/Linux</p></blockquote><h4 id="嵌入式计算机-单片机"><a href="#嵌入式计算机-单片机" class="headerlink" title="嵌入式计算机/单片机"></a>嵌入式计算机/单片机</h4><p>应用：寄生在其他设备中</p><p>SoC/片上系统/系统级芯片</p><h2 id="CPU的结构和原理"><a href="#CPU的结构和原理" class="headerlink" title="CPU的结构和原理"></a>CPU的结构和原理</h2><h3 id="计算机工作原理"><a href="#计算机工作原理" class="headerlink" title="计算机工作原理"></a>计算机工作原理</h3><p>冯·诺依曼体系结构：存储程序控制原理 = 存储程序 + 程序控制原理</p><p>程序是个指令序列</p><p><img src="https://bu.dusays.com/2023/08/20/64e1ce3088a77.png" alt="image-20230816145109465"></p><h3 id="CPU的结构"><a href="#CPU的结构" class="headerlink" title="CPU的结构"></a>CPU的结构</h3><p>CPU组成：寄存器组、运算器、控制器</p><ul><li><p>寄存器组：用来临时存放参加运算的数据和运算得到的中间或最后结果</p></li><li><p>运算器：对二进制数据进行 算术运算、逻辑运算【ALU】</p></li><li><p>控制器：指令计数器、指令寄存器</p><p>指令计数器：用来存放CPU待执行的 指令的地址，CPU按照地址从内存中读取所需要执行的指令。【存指令地址、+1操作】</p><p>指令寄存器：用来保存当前正在执行的指令，通过译码器解释该指令的含义，控制运算器的操作，记录CPU的内部状态【存放指令、编译指令】</p></li></ul><p><img src="https://bu.dusays.com/2023/08/20/64e1ce2e23422.png" alt="image-20230816145308394"></p><h3 id="指令与指令系统"><a href="#指令与指令系统" class="headerlink" title="指令与指令系统"></a>指令与指令系统</h3><h4 id="什么是指令"><a href="#什么是指令" class="headerlink" title="什么是指令?"></a>什么是指令?</h4><p>指令是构成程序的基本单位，程序是由一连串指令组成</p><p>指令由 操作码 和 操作数地址 组成</p><p><img src="https://bu.dusays.com/2023/08/20/64e1ce3af136c.png" alt="image-20230816151612853"></p><h4 id="指令的执行过程"><a href="#指令的执行过程" class="headerlink" title="指令的执行过程"></a>指令的执行过程</h4><ol><li>取指令：CPU的控制器从存储器读取一条指令并放入指令寄存器</li><li>指令译码: 指令寄存器中的指令经过 <strong>译码</strong>，决定该指令应进行何种操作、操作数在哪里</li><li>取操作数：根据操作数地址取出操作数</li><li>执行指令：运算器按照操作码的要求，对操作数完成规定的运算，把运算 结果保存到指定的寄存器，需要时将结果保存到内存单元</li><li>修改指令计数器(+1)，决定下一条指令的地址</li></ol><p><img src="https://bu.dusays.com/2023/08/20/64e1ce3d0c8f6.png" alt="image-20230816152609467"></p><h4 id="指令系统"><a href="#指令系统" class="headerlink" title="指令系统"></a>指令系统</h4><p>指令系统(指令集)：CPU所能执行的全部指令的集合</p><p>Core处理器的【七大指令系统】：数据传送类、算数运算类、逻辑运算类、 移位操作类、位操作类、控制转移类、输入输出类</p><h4 id="CPU兼容性"><a href="#CPU兼容性" class="headerlink" title="CPU兼容性"></a>CPU兼容性</h4><p>1）<strong>不同厂商</strong> 生产的CPU的指令系统 <strong>通常/一般不兼容</strong> (Intel和AMD相互兼容)</p><p>2）<strong>同一厂商</strong> 生产的CPU的指令系统保持 <strong>向下兼容</strong> </p><h3 id="CPU性能指标"><a href="#CPU性能指标" class="headerlink" title="CPU性能指标"></a>CPU性能指标</h3><h4 id="衡量性能的方法"><a href="#衡量性能的方法" class="headerlink" title="衡量性能的方法"></a>衡量性能的方法</h4><ol><li>参数角度：每秒钟可执行多少指令</li></ol><ul><li><strong>MIPS【百万条定点指令/秒】</strong></li><li>MFLOPS【百万条浮点指令/秒】</li></ul><ol><li>运行角度：运行各种测评软件</li></ol><ul><li>游戏性能测试程序：3DMark</li><li>整体性能测试程序：PCMAark</li></ul><h4 id="影响CPU性能的主要因素-参数"><a href="#影响CPU性能的主要因素-参数" class="headerlink" title="影响CPU性能的主要因素/参数"></a>影响CPU性能的主要因素/参数</h4><ol><li>指令系统</li></ol><p>指令系统越简单，越有利于提高速度，降低功耗【<strong>短小精悍</strong>】</p><ol><li>字长(位数)</li></ol><p><strong>通用寄存器和定点运算器的宽度</strong>（即二进制整数运算的位数）</p><ol><li>主频(CPU的时钟频率)</li></ol><p><strong>CPU 中电子线路的工作频率</strong>，它决定着CPU芯片内部数据传输与操作速度的快慢。</p><ol><li>高速缓存(cache)的容量和结构</li></ol><p>程序运行过程中，高速缓存有利于减少CPU访问内存的次数。<u>Cache容量越大，级数越多，访问Cache的命中率越高，CPU的速度就越快</u>【cache在CPU中】</p><p>cache命中率：CPU需要的指令和数据在Cache中能直接取到的概率【<u>CPU先去cache找数据，找到直接从cache中读取，找不到再去内存</u>】</p><p>如何提高cache命中率？</p><p>1）增大cache容量。</p><p>2）采用多级cache技术(2级或3级等)。</p><p>3）cache中采用快速的查找算法，判定是否命中。</p><p>4）不能命中时，采用有效的算法将读入的内容替换cache中暂时不使用的内容。</p><p>5）编译器优化目标程序</p><p>6）程序员写出cache-friendly的程序。</p><blockquote><p>⭐重点</p><ul><li>作用：解决内存和CPU<strong>速度的差距</strong>方案【CPU和内存之间】</li><li><u><strong>不与主存统一编址</strong>，但可接受CPU直接访问；Cache中的数据是主存中部分内容的<strong>映象</strong>。</u></li><li><strong>CPU局部访问原理</strong></li></ul></blockquote><ol><li><p>逻辑结构(微架构)</p></li><li><p>CPU核的个数【并行处理】</p></li></ol><h2 id="主板、内存和I-O"><a href="#主板、内存和I-O" class="headerlink" title="主板、内存和I/O"></a>主板、内存和I/O</h2><h3 id="主板"><a href="#主板" class="headerlink" title="主板"></a>主板</h3><p>主板的物理尺寸已经标准化；ATX 规格主板正向 BTX 规格转换；主板的稳定性影响着整个计算机系统的稳定性。</p><p><img src="https://bu.dusays.com/2023/08/20/64e1ce4164d5a.png" alt="image-20230818151404049"></p><h4 id="扩充卡"><a href="#扩充卡" class="headerlink" title="扩充卡"></a>扩充卡</h4><p>插在PC 机主板总线插槽中的电路板，如显卡、声卡、网卡、视频卡等；随着集成电路的发展和计算机技术的进步，许多扩充卡的功能已经部分或全部<strong>集成在芯片组和主板上</strong>，因此不再需要插接相应的适配卡。</p><h3 id="芯片组"><a href="#芯片组" class="headerlink" title="芯片组"></a>芯片组</h3><p>芯片组是PC机各组成部分相互连接和通信的枢纽</p><h4 id="芯片组组成"><a href="#芯片组组成" class="headerlink" title="芯片组组成"></a>芯片组组成</h4><ol><li>北桥</li></ol><ul><li>概念：<strong>存储控制中心</strong>，用于连接CPU、内存、显卡等<strong>高速</strong>设备，并与南桥芯片互联。【高速设备】</li><li>北桥的大部分功能已经集成在CPU芯片中，剩余功能集成到了南桥芯片中【单芯片组】</li></ul><ol><li>南桥</li></ol><ul><li>概念：<strong>I/O控制中心</strong>，用于连接各种输入输出设备，各个扩展槽、I/O总线、以及各种输入输出接口等。【<strong>低速</strong>设备】</li></ul><p>随着集成电路技术的进步，<u>北桥的大部分功能已经集成在CPU芯片中，其他功能则合并至南桥芯片</u>，所以现在只需要一块芯片，就可以完成系统中所有硬件的连接</p><p><img src="https://bu.dusays.com/2023/08/20/64e1ce4328095.png" alt="image-20230818153505099" style="zoom: 80%;" /></p><blockquote><p>其他</p><p>1）芯片组决定了所使用的 <strong>CPU的类型和参数</strong></p><p>2）CPU类型和参数不同，需要配备不同的芯片组</p><p>3）芯片组提供了 <strong>CPU的时钟频率</strong></p><p>4）芯片组决定了主板上所能安装的 <strong>内存的最大容量和类型</strong></p></blockquote><h3 id="BIOS【基本输入-输出系统】"><a href="#BIOS【基本输入-输出系统】" class="headerlink" title="BIOS【基本输入/输出系统】"></a>BIOS【基本输入/输出系统】</h3><p>存放在主板上【只读存储器（ROM）】芯片中的一组机器语言程序。【<strong>机器语言</strong>】</p><blockquote><p>注意：是BIOS-ROM，<strong>只读</strong>存储器，<strong>断电不会丢失</strong>，BIOS是计算机中最基础的、开机最先启动的程序</p></blockquote><h4 id="BIOS组成"><a href="#BIOS组成" class="headerlink" title="BIOS组成"></a>BIOS组成</h4><ol><li>加电自检程序 POST</li></ol><ul><li>测试PC机各部件的工作状态是否正常</li></ul><ol><li><p>系统自举程序 / 系统盘主引导记录的装入程序 BOOT</p></li><li><p>CMOS设置程序</p></li></ol><ul><li>设置系统参数，例如 时间、日期、口令、配置参数等</li></ul><ol><li>基本外围设备驱动程序 </li></ol><ul><li>键盘、显示器、软驱和硬盘等</li></ul><h3 id="CMOS"><a href="#CMOS" class="headerlink" title="CMOS"></a>CMOS</h3><p>其中存放的是与计算机系统相关的一些参数(称为“配置参数”)，包括当前的日期和时间、开机口令、已安装的光驱和硬盘的个数及类型，加载操作系统的顺序；<u>CMOS是主板上的一块可读写的存储芯片。</u></p><blockquote><p>注意：CMOS是<strong>易失</strong>性存储器RAM芯片，<strong>断电后信息丢失</strong>，<strong>靠纽扣电池供电</strong>。</p></blockquote><h3 id="存储器"><a href="#存储器" class="headerlink" title="存储器"></a>存储器</h3><h4 id="内存和外存"><a href="#内存和外存" class="headerlink" title="内存和外存"></a>内存和外存</h4><div class="table-container"><table><thead><tr><th style="text-align:center">存储器</th><th style="text-align:center">内存储器【主存储器】</th><th style="text-align:center">外存储器【辅助存储器】</th></tr></thead><tbody><tr><td style="text-align:center">基本特征</td><td style="text-align:center">存储速度快，成本较高，容量较小</td><td style="text-align:center">存储速度慢，成本第，容量大</td></tr><tr><td style="text-align:center">编址方式</td><td style="text-align:center">按 <strong>字节</strong> 编址和存取</td><td style="text-align:center">按 <strong>数据块</strong> 编址和存取</td></tr><tr><td style="text-align:center">CPU关系</td><td style="text-align:center"><strong>直接与 CPU 连接</strong>，CPU(指令)可以对内存中的指今及数据进行读、写操作。</td><td style="text-align:center"><strong>不与 CPU 直接连接</strong>，计算机运行程序时，外存中的程序及相关数据必须先传送到内存，然后才能被CPU 使用。</td></tr><tr><td style="text-align:center">存储性质</td><td style="text-align:center">大多属于<strong>易失性存储器</strong>，用于临时存放正在运行的程序和数据</td><td style="text-align:center">属于<strong>非易失性存储器</strong>，用于长久存放系统中几乎所了有的信息</td></tr></tbody></table></div><h4 id="存储器的层次结构"><a href="#存储器的层次结构" class="headerlink" title="存储器的层次结构"></a>存储器的层次结构</h4><p>目的：优化存储器的性能/性价比</p><p><img src="https://bu.dusays.com/2023/08/20/64e1ce4669d48.png" alt="image-20230818154920903" style="zoom:80%;" /></p><h4 id="存储器分类"><a href="#存储器分类" class="headerlink" title="存储器分类"></a>存储器分类</h4><p><img src="https://bu.dusays.com/2023/08/20/64e1ce47cf1d9.png" alt="image-20230818164820455" style="zoom: 50%;" /></p><h4 id="主存储器"><a href="#主存储器" class="headerlink" title="主存储器"></a>主存储器</h4><p>内存条：把若干片 <strong>DRAM</strong> 芯片焊在一小条印制电路板上做成的部件</p><p>存储单元：每个<u>存储单元的<strong>基本单位</strong>为1Byte</u>，按字节编址。</p><p>地址：<u>每个存储单元（一个字节）都有一个唯一编号的地址，主存储器以字节为单位进行连续编址，CPU 按地址对存储器进行访问</u></p><h5 id="主存性能指标"><a href="#主存性能指标" class="headerlink" title="主存性能指标"></a>主存性能指标</h5><ol><li>存储容量：主存储器中所包含的存储单元的总数（即内存中可存储信息的多少）</li></ol><blockquote><p>影响内存容量的因素：主板芯片组的型号、主板存储器插座类型与数目、CPU 地址线的宽度</p></blockquote><ol><li>存取时间：从CPU 送出内存单元的地址码开始，到主存读出数据并送到CPU（或者是把CPU 数据写入主存）所需要的时间——单位：ns（1ns = 10-9 秒）</li></ol><h5 id="DDR-和-DIMM"><a href="#DDR-和-DIMM" class="headerlink" title="DDR 和 DIMM"></a>DDR 和 DIMM</h5><p>1）DDR</p><p>利用时钟的上升沿与下降沿在同一个时钟周期内实现两次数据传送（即DDR SDRAM 的有效时钟频率是SDRAM 的两倍）【x2】，<u>两块相同配置的DDR内存条可以组成“<strong>双通道</strong>”</u></p><blockquote><p>DDR速率 X2</p></blockquote><p>2）DIMM</p><p><u>双列直插式内存条</u>，触点分布在内存条的两面【<strong>两面引脚作用不同</strong>】</p><h3 id="I-O操作与I-O总线"><a href="#I-O操作与I-O总线" class="headerlink" title="I/O操作与I/O总线"></a>I/O操作与I/O总线</h3><h4 id="I-O操作"><a href="#I-O操作" class="headerlink" title="I/O操作"></a>I/O操作</h4><p>定义：将输入设备输入的数据送入计算机内存【输入】，或者将数据从内存读出送到输出设备【输出】。</p><h5 id="⭐I-O操作特点"><a href="#⭐I-O操作特点" class="headerlink" title="⭐I/O操作特点"></a>⭐I/O操作特点</h5><ul><li><u>I/O 操作与 CPU 的数据处理操作是并行的；</u></li><li><u>多个I/O 设备能同时进行工作</u></li><li><p>I/O 设备的种类多，性能相差很大，与计算机主机的连接方法也各不相同</p></li><li><p>每个(类)I/O 设备都有各自专用的控制器，它们的任务是接收CPU 启动I/O 操作的命令后，<strong>独立地控制I/O 操作的全过程</strong></p></li></ul><h4 id="I-O总线"><a href="#I-O总线" class="headerlink" title="I/O总线"></a>I/O总线</h4><p>定义：用于连接内存和I/O 设备（包括外存）的总线（I/O 总线与主板上扩充插槽中的扩充卡直接相连）</p><h5 id="总线数据传输速率"><a href="#总线数据传输速率" class="headerlink" title="总线数据传输速率"></a>总线数据传输速率</h5><p>定义：单位时间内总线上可传送的数据量。</p><blockquote><p>总线带宽（MB/s）=（数据线宽度/8）×总线工作频率（MHz）×每个总线周期的传输次数</p></blockquote><h5 id="I-O总线发展"><a href="#I-O总线发展" class="headerlink" title="I/O总线发展"></a>I/O总线发展</h5><ul><li>ISA、EISA【第一代】</li><li>PCI、PCI-X【第二代】</li><li>PCI-Express(简称PCI-E)【第三代】</li></ul><h5 id="PCI总线特点"><a href="#PCI总线特点" class="headerlink" title="PCI总线特点"></a>PCI总线特点</h5><ul><li><u>PCI 的数据线宽度可为 32 位（数据传输速度 133MB/s），也可为 64 位（数据传输速度 266MB/s）【可扩展】</u></li><li>PCI 可支持多个外围设备，如网卡、声卡、显卡【PCI-E x 16】</li><li>PCI采用高速 <strong>串行</strong> 传输</li><li>PCI 总线的时钟与 CPU 时钟无关</li><li>PCI 能与其他 I/O 总线共存于 PC 系统中</li></ul><h4 id="I-O接口"><a href="#I-O接口" class="headerlink" title="I/O接口"></a>I/O接口</h4><p>输入/输出设备通过I/O 接口与各自的控制器连接起来</p><p><img src="https://bu.dusays.com/2023/08/20/64e1ce4ae9596.png" alt="image-20230818170659345" style="zoom:50%;" /></p><h5 id="I-O接口分类"><a href="#I-O接口分类" class="headerlink" title="I/O接口分类"></a>I/O接口分类</h5><p>1）按数据传输方式</p><ul><li><p>串行：USB【4线】、IEEE1394【6线】、SATA</p></li><li><p>并行：IDE【PATA】</p></li></ul><p>2）按能否能连接多个设备</p><ul><li><p>总线式：USB….</p></li><li><p>独占式：PS/2</p></li></ul><h5 id="⭐USB接口"><a href="#⭐USB接口" class="headerlink" title="⭐USB接口"></a>⭐USB接口</h5><p><u>USB 又名 <strong>通用串行总线式接口</strong>，可以连接多个设备，串行传输</u></p><p>USB传输速率：</p><p>1）USB2.0：480Mb/s（60MB/s）</p><p>2）USB3.0：3.2Gbps（400MB/s）    5Gbps（625MB/s）</p><p>3）USB3.1：10Gb/s（1.25GB/s）</p><p>USB特点</p><ul><li>USB2.0使用 <strong>4线</strong> 接口（红白绿黑）</li><li>支持<strong>热插拔和即插即用</strong></li><li><strong>可连接多个设备</strong>（最多127 个）</li><li>可向外设<strong>供电</strong>（<strong>＋5V</strong>，100～500 mA）。</li></ul><p>IEEE-1394 接口</p><ul><li>FireWire，双向串行传输、采用差分信号形式传输时钟及数据、连接高速设备（如音视频设备）50MB/S～100 MB/S、6 线接口、可连接多个设<br>备（63 个）</li></ul><p>SCSI 接口（small computer interface）</p><ul><li>一种用于连接大容量磁盘驱动器、扫描仪等外围设备的专门的高速并行端口。</li></ul><p><img src="https://bu.dusays.com/2023/08/20/64e1ce4d99ca7.png" alt="image-20230818170526653" style="zoom:50%;" /></p><h2 id="常用输入设备"><a href="#常用输入设备" class="headerlink" title="常用输入设备"></a>常用输入设备</h2><h3 id="键盘"><a href="#键盘" class="headerlink" title="键盘"></a>键盘</h3><h4 id="按键功能"><a href="#按键功能" class="headerlink" title="按键功能"></a>按键功能</h4><p><img src="https://bu.dusays.com/2023/08/20/64e1ce50a69e0.png" alt="image-20230818215738672" style="zoom:50%;" /></p><h4 id="键盘分类"><a href="#键盘分类" class="headerlink" title="键盘分类"></a>键盘分类</h4><ul><li>机械键盘</li><li>电容式键盘：<u>击键声音小、不存在磨损接触不良等问题、寿命长、手感好</u></li></ul><blockquote><p>扩展</p><p>软键盘：智能手机使用的就是软键盘(虚拟键盘)，用户手指触摸其中的按键就可以输入相应的信息，不使用时虚拟键盘可以从屏幕上消失</p></blockquote><h4 id="键盘与主机接口"><a href="#键盘与主机接口" class="headerlink" title="键盘与主机接口"></a>键盘与主机接口</h4><ul><li>AT 接口（早期）</li><li>PS/2 接口【绿色鼠标，紫色键盘】</li><li>USB 接口</li><li>无线接口（红外、无线电波、蓝牙）</li></ul><h3 id="鼠标"><a href="#鼠标" class="headerlink" title="鼠标"></a>鼠标</h3><p>鼠标能够方便地控制屏幕上的鼠标箭头准确地定位在指定的位置处，然后通过按键(左键/右键)发出命令，进行各种操作。</p><h4 id="工作过程"><a href="#工作过程" class="headerlink" title="工作过程"></a>工作过程</h4><ol><li><p>用户移动鼠标器时，借助于<strong>机械或光学原理</strong>，将鼠标在X方向和Y方向移动的距离变换成<strong>脉冲信号</strong>输入计算机</p></li><li><p>计算机中的鼠标驱动程序把接收到的脉冲信号转换成水平和垂直方向的<strong>位移量</strong>，继而控制屏幕上鼠标箭头的移动</p></li></ol><h4 id="鼠标分类"><a href="#鼠标分类" class="headerlink" title="鼠标分类"></a>鼠标分类</h4><ul><li>机械式鼠标</li><li>光电式鼠标【目前】：它使用一个<strong>微型镜头</strong>不断地拍摄鼠标器下方的图像经过一个特殊的微处理器(<strong>数字信号处理器DSP</strong>)对图像颜色或纹理的变化进行分析，计算出鼠标器的移动方向和距离。</li></ul><h4 id="鼠标操作"><a href="#鼠标操作" class="headerlink" title="鼠标操作"></a>鼠标操作</h4><p>略</p><h4 id="鼠标形状"><a href="#鼠标形状" class="headerlink" title="鼠标形状"></a>鼠标形状</h4><p><img src="https://bu.dusays.com/2023/08/20/64e1ce528b28f.png" alt="image-20230818221509665" style="zoom: 80%;" /></p><h4 id="主要指标"><a href="#主要指标" class="headerlink" title="主要指标"></a>主要指标</h4><ul><li>分辨率dpi：鼠标每移动一<strong>英寸</strong>距离光标在屏幕上所通过的像素的数目，<strong>分辨率越高，定位越准确</strong></li></ul><h4 id="鼠标与主机接口"><a href="#鼠标与主机接口" class="headerlink" title="鼠标与主机接口"></a>鼠标与主机接口</h4><ul><li>EIA（RS）-232 串行口</li><li>PS/2 接口</li><li>USB 接口</li><li>无线接口</li></ul><h4 id="与鼠标作用类似的设备"><a href="#与鼠标作用类似的设备" class="headerlink" title="与鼠标作用类似的设备"></a>与鼠标作用类似的设备</h4><ul><li><p>操纵杆【经常用于游戏控制】</p></li><li><p>触摸屏【适用于服务性公共场所】 :<u>触摸屏对压力敏感，触摸屏兼又鼠标和键盘的功能</u>，智能手机/平板电脑流行使用 ”<strong>多点触摸屏“</strong>，多点触摸屏大多基于<strong>电容传感器原理</strong>，可以同时感知频幕上的多个触控点。</p></li><li><p>触摸板【笔记本】</p></li></ul><h3 id="扫描仪"><a href="#扫描仪" class="headerlink" title="扫描仪"></a>扫描仪</h3><p>扫描仪是将原稿 (图片、照片、底片、书稿) 输入计算机的一种输入设备。扫描仪输入到计算机中的是原稿的“<strong>图象</strong>”。</p><p><strong>未经OCR 识别，内容不可编辑</strong></p><h4 id="分类"><a href="#分类" class="headerlink" title="分类"></a>分类</h4><ul><li>手持式扫描仪：一行一行地扫描</li><li><strong>平板式扫描仪【家用和办公自动化领域广泛应用】</strong></li><li><strong>胶片专用和滚筒式【专业印刷排版领域】</strong></li></ul><h4 id="⭐扫描仪工作过程与原理"><a href="#⭐扫描仪工作过程与原理" class="headerlink" title="⭐扫描仪工作过程与原理"></a>⭐扫描仪工作过程与原理</h4><p><img src="https://bu.dusays.com/2023/08/20/64e1ce56085a9.png" alt="image-20230818223829713" style="zoom:50%;" /></p><p>扫描仪工作时，将被扫描的原稿 <strong>正面朝下</strong> 放置在扫描仪玻璃板上。扫描仪采用高亮度的光照射图像，由电机牵动的扫描头沿着原稿移动，并接受从原稿反射回来的光束。通过 <strong>CCD(电荷耦合器件)</strong> 的 <strong>光电转换</strong> 产生电流输出。照射光强电流大，照射光弱电流小，经过 <strong>模数转换器(A/D转换器)转换</strong>，就变成计算机可以处理的数字信号。这种数字信号由专门软件经过各种校正和平滑处理之后得到的图像数据以指定的文件格式存储在计算机中。</p><h4 id="性能指标"><a href="#性能指标" class="headerlink" title="性能指标"></a>性能指标</h4><ol><li><p>分辨率（dpi）：反应了扫描仪扫描图像的清晰程度，用<strong>每英寸</strong>生成的像素数目(dpi)来表示</p></li><li><p>色彩位数（像素深度/色彩深度）：<u>色彩位数越多，能反映的色彩就越丰富，扫描效果也越真实</u></p></li><li><p>扫描幅面：原稿最大尺寸</p></li><li><p>接口：SCSI、USB、IEEE-1394  【全是串口】</p></li></ol><h3 id="数码相机"><a href="#数码相机" class="headerlink" title="数码相机"></a>数码相机</h3><h4 id="数码相机原理"><a href="#数码相机原理" class="headerlink" title="数码相机原理"></a>数码相机原理</h4><p><img src="https://bu.dusays.com/2023/08/20/64e1ce57d84db.png" alt="image-20230818224616779" style="zoom: 67%;" /></p><h4 id="性能指标-1"><a href="#性能指标-1" class="headerlink" title="性能指标"></a>性能指标</h4><ol><li>CMOS/CCD像素数目：<strong>CCD 像素个数越多，影像分辨率越高，图像质量越好</strong></li></ol><ul><li><strong>中高档</strong>数码相机用 CCD</li><li><strong>低档</strong>普及型相机用 CMOS</li></ul><ol><li>存储器的容量</li></ol><h3 id="传感器"><a href="#传感器" class="headerlink" title="传感器"></a>传感器</h3><p>传感器(transducer/sensor)是一种检测装置，它能感知被测量的信息，并将其变换成电信号输入计算机，供计算机进行测量、转换、存储、显示或传输等处理。</p><h4 id="常见传感器"><a href="#常见传感器" class="headerlink" title="常见传感器"></a>常见传感器</h4><ul><li><p>环境光感应器：感知设备使用环境的光线明暗，<u>自动调整屏幕的显示亮度</u>可以延长电池工作时间，对保护眼睛也有利</p></li><li><p>近距离传感器 (proximity sensor)：通过红外线进行测距，当手机用户接听电话或者装进口袋时，传感器可以判断出手机贴近了人脸或衣服而关闭屏幕的触控功能，以防止误操作。</p></li><li><p>气压传感器：检测大气压，感知当前高度以及辅助GPS定位。</p></li><li><p><u>三轴陀螺仪：感知手机横竖纵三个方向的位置变化，自动调整屏幕以横向还是纵向进行显示。</u></p></li><li><p>重力传感器(加速度感应器)：感知用户晃动手机的速度、角度、方向和力量的大小，在玩游戏的时候很有用处</p></li><li><p>磁力计 (电子罗盘)：用作电子指南针、帮助GPS定位等</p></li><li><p>3D 触摸传感器：嵌在液晶屏的背光层，可测量出用户触摸屏幕的力量大小。3Dtouch与振动器结合，后者可向用户提供<strong>力反馈</strong></p></li></ul><h2 id="常用输出设备"><a href="#常用输出设备" class="headerlink" title="常用输出设备"></a>常用输出设备</h2><h3 id="显示器和显示卡"><a href="#显示器和显示卡" class="headerlink" title="显示器和显示卡"></a>显示器和显示卡</h3><p><img src="https://bu.dusays.com/2023/08/20/64e1ce593c0a7.png" alt="image-20230819085718717" style="zoom: 67%;" /></p><h4 id="显示器"><a href="#显示器" class="headerlink" title="显示器"></a>显示器</h4><h5 id="显示器分类"><a href="#显示器分类" class="headerlink" title="显示器分类"></a>显示器分类</h5><p>计算机使用的显示器主要有两类：</p><ul><li>CRT显示器：</li><li>液晶显示器(LCD)：工作电压抵，<strong>辐射危害小</strong>，功耗低，不闪烁</li></ul><h5 id="显示器性能参数"><a href="#显示器性能参数" class="headerlink" title="显示器性能参数"></a>显示器性能参数</h5><ul><li><p>显示屏的尺寸与屏幕宽高比：显示器的尺寸以<strong>对角线</strong>长度度量，的单位是<strong>英寸</strong>；宽高比：4：3；16：10</p></li><li><p>显示器的分辨率：<strong>水平像素个数 x 垂直像素个数</strong></p><p>注意：在显卡的控制下，屏幕的分辨率是可以设置的</p></li><li><p>刷新速率：所显示的图像每秒钟更新的次数，单位 Hz</p></li><li><p>响应时间：越小越好</p></li><li><p>色彩、亮度和对比度</p></li><li><p><u>背光源类型：荧光灯管 和 白色发光二极管(LED)</u></p></li><li><p>辐射和环保：能源之星</p></li></ul><blockquote><p>常见分辨率</p><p>1920x1080 (1080P)、1024x 768 (720P)、2560x 1440 (2K)、3840x 2160 (4K)、1280x1024、800x600、640x480</p></blockquote><h5 id="CRT-VS-LCD"><a href="#CRT-VS-LCD" class="headerlink" title="CRT VS LCD"></a>CRT VS LCD</h5><div class="table-container"><table><thead><tr><th></th><th>CRT</th><th>显示器 LCD</th></tr></thead><tbody><tr><td>闪烁</td><td>有时会</td><td>不会</td></tr><tr><td>工作电压</td><td>高</td><td>低</td></tr><tr><td>功耗</td><td>高</td><td>低</td></tr><tr><td>电磁辐射</td><td>少量</td><td>没有</td></tr><tr><td>体积</td><td>通常较大</td><td>较轻薄易携带</td></tr><tr><td>显示分辨率</td><td>可调节，有多种</td><td>一般固定为一种</td></tr></tbody></table></div><h4 id="显示卡"><a href="#显示卡" class="headerlink" title="显示卡"></a>显示卡</h4><h5 id="显卡分类"><a href="#显卡分类" class="headerlink" title="显卡分类"></a>显卡分类</h5><p>显示卡分为两种：</p><ul><li>独立显卡：以扩展卡的形式插在机箱中</li><li>集成显卡：绘图处理器包含在CPU或北桥芯片中，显示使用的存储器需要占用内存的一部分</li></ul><h5 id="显卡的组成"><a href="#显卡的组成" class="headerlink" title="显卡的组成"></a>显卡的组成</h5><p><img src="https://bu.dusays.com/2023/08/20/64e1ce5c6c229.png" alt="image-20230819091800393" style="zoom: 80%;" /></p><p><strong>显卡主要由显示控制电路、图形处理器(GPU)、显示存储器和接口电路四个部分组成。</strong></p><ul><li>显示控制电路：<u>负责对显卡的操作进行控制，包括对液晶显示器进行控制，如 <strong>光栅扫描、同步、画面刷新</strong> 等等</u></li><li>主机接口电路：负责显示卡与CPU和内存的数据传输，现在显卡一般都采用 <strong>PCI-Ex16</strong> 高速接口。</li><li>显示存储器(VRM)：用于接收和传输CPU和内存交互的数据</li><li>图形处理器(GPU)：用于对显示图像相关数据进行运算</li></ul><h5 id="显卡性能参数"><a href="#显卡性能参数" class="headerlink" title="显卡性能参数"></a>显卡性能参数</h5><ol><li><p>绘图处理器</p></li><li><p>显存容量</p></li><li><p>主机接口：PCI-Ex16、AGPx4,x8</p></li><li><p>⭐显示器接口：</p><ul><li>VGA：模拟接口</li><li>DVI：数字接口</li><li>HDMI：<strong>全高清多媒体</strong>接口(以<strong>无压缩</strong>方式传送<u>1920x1200的数字视频信号和5.1声道音频信号</u>) 【图像+声音】19针，<strong>不可热插拔</strong></li></ul></li></ol><h3 id="打印机"><a href="#打印机" class="headerlink" title="打印机"></a>打印机</h3><h4 id="1-针式打印机"><a href="#1-针式打印机" class="headerlink" title="1. 针式打印机"></a>1. 针式打印机</h4><p>类型：<strong>击打式打印机</strong></p><p>优点：耗材成本低，支持多层套打，适合于票据打印</p><p>缺点：打印质量不高，工作噪声很大，速度慢</p><p>应用：银行、证券、邮电、商业等领域 用于打印存折和票据等</p><blockquote><p>扩展：</p><p>热敏打印机：非击打式打印机，所使用的热敏打印纸上覆盖了一层热敏材料的透明膜</p></blockquote><h4 id="2-激光打印机"><a href="#2-激光打印机" class="headerlink" title="2. 激光打印机"></a>2. 激光打印机</h4><p>类型：<strong>击打式打印机</strong>，</p><p>原理：<strong>激光技术 与 复印技术的结合</strong></p><p>优点：分辨率较高，打印质量好速度高，噪声低，价格适中</p><p>缺点：彩色输出价格还比较高</p><p>接口：过去是并行口，目前流行使用USB接口</p><p>应用：办公室和家庭应用</p><h4 id="3-喷墨打印机"><a href="#3-喷墨打印机" class="headerlink" title="3. 喷墨打印机"></a>3. 喷墨打印机</h4><p>类型：非击打式打印机，大多为<strong>彩色打印</strong>。</p><p>优点：可以打印近似全彩色图像，经济，效果好，低噪音，使用低电压，环保。</p><p>缺点：墨水成本高，消耗快</p><p>应用：家庭及办公</p><blockquote><p>扩展：</p><p>3D打印机技术</p><p>1.熔融沉积技术  </p><p>2.选择性激光烧结技术  </p><p>3.立体平面印刷技术</p></blockquote><h4 id="打印机性能指标"><a href="#打印机性能指标" class="headerlink" title="打印机性能指标"></a>打印机性能指标</h4><ul><li><strong>打印精度(分辨率dpi)</strong>：每英寸多少像素点</li><li><strong>打印速度</strong>：页数/分 PPM</li><li><strong>色彩表现能力</strong>：打印机可打印的不同颜色的总数</li><li><strong>可打印篇幅大小</strong></li><li><strong>与主机接口</strong>：并行口、SCSI、USB</li><li>其他：如<strong>打印成本、噪声、功耗</strong>等。</li></ul><h4 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h4><div class="table-container"><table><thead><tr><th></th><th>针式打印机</th><th>激光打印机</th><th>喷墨打印机</th></tr></thead><tbody><tr><td>性质</td><td>击打式</td><td>非击打式</td><td>非击打式</td></tr><tr><td>耗材</td><td>色带</td><td>炭粉</td><td>墨水</td></tr><tr><td>打印质量</td><td>差</td><td>最好</td><td>好</td></tr><tr><td>工作噪声</td><td>最大</td><td>小</td><td>低</td></tr><tr><td>臭氧产生</td><td>无</td><td>有（使用高电压）</td><td>无</td></tr><tr><td>打印速度</td><td>慢</td><td>最快</td><td>中</td></tr><tr><td>打印平均成本</td><td>中</td><td>最低（但初始购机成本大）</td><td>高（墨水成本高、消耗快，但能最经济的输出彩色图像）</td></tr><tr><td>定位</td><td>超市银行等商业打印存折票据（字符图案）</td><td>政府或单位</td><td>家庭</td></tr><tr><td>工作原理</td><td>打印头上安装了若干钢针</td><td>激光成像、静电吸附</td><td>墨水喷射到纸上形成图案或字符</td></tr><tr><td>其他</td><td>多层套打（突出特点）平推式进纸技术</td><td>激光技术与复印技</td><td>关键技术：喷头（易堵）</td></tr><tr><td>接口</td><td>并口、USB 接口、SCSI 接口（高速激光打印机）</td><td>并口、USB 接口、SCSI 接口（高速激光打印机）</td><td>并口、USB 接口、SCSI 接口（高速激光打印机）</td></tr></tbody></table></div><h3 id="声音和力反馈输出"><a href="#声音和力反馈输出" class="headerlink" title="声音和力反馈输出"></a>声音和力反馈输出</h3><h4 id="声音输出"><a href="#声音输出" class="headerlink" title="声音输出"></a>声音输出</h4><ul><li>扬声器</li><li>耳机</li><li>音响</li></ul><h4 id="力反馈输出"><a href="#力反馈输出" class="headerlink" title="力反馈输出"></a>力反馈输出</h4><p>作用：在开/关手机、虚拟键盘输入、电话来电通知等场合，会产生力反馈使手机振动，提醒用户知晓</p><p>实现:微型振动马达</p><h2 id="辅助存储器"><a href="#辅助存储器" class="headerlink" title="辅助存储器"></a>辅助存储器</h2><h3 id="硬盘存储器"><a href="#硬盘存储器" class="headerlink" title="硬盘存储器"></a>硬盘存储器</h3><p>机械硬盘由磁盘盘片(存储介质)、主轴与主轴电机、移动臂、磁头和控制电路等组成，他们全部密封于一个盒状装置内，这就是通常所说的硬盘。</p><p><img src="https://bu.dusays.com/2023/08/20/64e1ce608e68d.png" alt="image-20230819144516559" style="zoom:50%;" /></p><p>盘片表面<strong>由外向里分成许多同心圆</strong>，每个圆称为一个<strong>磁道</strong>，盘面上一般都有几千个磁道，每条磁道还要分成几千个<strong>扇区</strong>，每个扇区的容量一般为<strong>512字节或4KB</strong></p><p><img src="https://bu.dusays.com/2023/08/20/64e1ce61f087e.png" alt="image-20230819145128731" style="zoom:50%;" /></p><p>通常，一块硬盘由1至5张盘片(1张盘片也称为1个单碟)组成，<u>所有盘片上相同半径处的一组磁道称为“<strong>柱面</strong>”。</u>所以,<u><strong>硬盘上的数据需要使用三个参数来定位:柱面号、扇区号和磁头号。</strong></u></p><h4 id="平均存取时间"><a href="#平均存取时间" class="headerlink" title="平均存取时间"></a>平均存取时间</h4><p>磁盘上的信息以扇区为单位进行读写，存取时间为:</p><p>==T(存取时间) = 寻道时间 + 旋转等待时间 + 数据传输时间==</p><ul><li><p>寻道时间：磁头寻找到指定磁道所需时间(大约5ms)</p></li><li><p>旋转等待时间：指定扇区旋转到磁头下方所需要的时间(大约4~6ms)(转速: 4200/5400/7200/10000rpm)</p></li><li><p>数据传输时间：(大约0.01ms/扇区)</p></li></ul><p>==<strong>平均</strong>存储时间 = 平均寻道时间 + 平均旋转等待时间 + 平均数据传输时间==</p><p>平均：(最好 + 最坏) / 2</p><h4 id="SATA-ATA-接口"><a href="#SATA-ATA-接口" class="headerlink" title="SATA(ATA)接口"></a>SATA(ATA)接口</h4><p>固定安装在PC机箱中的硬盘其接口是串行ATA(简称SATA)接口，他以高速<strong>串行</strong>的方式传输数据</p><ul><li>SATA 1.0：150MB/s</li><li>SATA 2.0：300MB/s</li><li>SATA 3.0：600MB/s</li></ul><h4 id="机械硬盘性能指标"><a href="#机械硬盘性能指标" class="headerlink" title="机械硬盘性能指标"></a>机械硬盘性能指标</h4><ol><li>容量</li><li>平均存取时间</li><li>缓存容量：机械硬盘高速缓存为DRAM</li><li>数据传输速率：<ul><li>外部传输速率：<u>主机从(向)硬盘缓存读出(写入)数据的速度</u>，它与采用的<strong>接口</strong>类型有关,现在采用SATA3.0接口的硬盘传输速率为6Gb/s(约600MB/s);</li><li>内部传输速率：<u>指硬盘在盘上读写数据的速度</u>，<strong>转速</strong>越高，内部传输速率越快。通常远小于外部传输速率。【<u><strong>提高硬盘性能的决定性因素</strong></u>】</li></ul></li><li>与主机的接口<ul><li>并行ATA(PATA/IDE)【以前】</li><li>串行ATA(SATA)【现在】</li></ul></li></ol><h3 id="闪存"><a href="#闪存" class="headerlink" title="闪存"></a>闪存</h3><p>闪速存储器是半导体集成电路存储器，属于非易失性存储器</p><p>优点：闪存没有机械运动部件，工作时无噪音，尺寸小、轻便，抗震性更好，能耐受高压高温</p><p>缺点：写入过程较复杂，写入速度慢于读出速度，写入次数有限制;性价比低于传统硬盘</p><p>闪存分类</p><p>NOR型闪存：可以按<strong>学节</strong>地址读出，用来存储需要运行而不要经常更新的程序代码，可作内存使用</p><p>NAND型闪存：比NOR型闪存的存储密度高。每个比特的成本也低，它具有较快的抹写速度，可抹除次数也高出NOR闪存十倍。但NAND 闪存不能按字节随机读写，只能像硬盘那样以<strong>数据块</strong>为单位存取信息</p><h3 id="U盘"><a href="#U盘" class="headerlink" title="U盘"></a>U盘</h3><p>U盘采用<strong>NAND Flash</strong>存储器(闪存)芯片，体积小，重量轻；容量按需要而定(几个GB ~ 几个TB)，具有<strong>写保护</strong>功能；数据保存安全可靠，使用寿命长；使用<strong>USB接口</strong>，<strong>即插即用，支持热插拔(必须先停止工作)</strong>；读写<strong>速度比较快</strong>；可以模拟光驱和硬盘启动操作系统</p><h3 id="存储卡"><a href="#存储卡" class="headerlink" title="存储卡"></a>存储卡</h3><p>原理与U盘相同，也使用闪存芯片 (flash memory)</p><p>长方形或正方形的卡片状，使用印刷插头，不使用USB插头</p><p><strong>使用读卡器才能对存储卡进行读写</strong></p><p>存储卡的主要种类</p><ul><li>CF卡</li><li>MMC卡</li><li>SD/SDHC卡 (包括Mini SD卡、Micro SD卡)</li><li>Memory Stick卡(MS卡)</li></ul><p>用途：数码相机、游戏机、手机、MP3播放器</p><h4 id="MN存储卡"><a href="#MN存储卡" class="headerlink" title="MN存储卡"></a>MN存储卡</h4><p><img src="https://bu.dusays.com/2023/08/20/64e1ce645e1e8.png" alt="image-20230819152712126" style="zoom:50%;" /></p><p>华为NM存储卡 (Nano Memory Card，简称NM卡) 是华为自创的一种超微型存储卡。</p><p>特点：</p><ul><li>比Micro SD卡的体积减小45%，与Nano SIM卡几乎相同</li><li>顺序读取速率可达90MB/s，顺序写入速率达70MB/s</li><li>使用手机中的1个Nano SIM卡槽，增大手机存储容量</li><li>提供 64GB、128GB等多种容量选择</li></ul><h3 id="固态硬盘"><a href="#固态硬盘" class="headerlink" title="固态硬盘"></a>固态硬盘</h3><p>固态硬盘(SolidState Disk或Solid State Drive,简称SSD准确的技术名称应为固态驱动器)它也是基于<strong>NAND型闪速存储</strong>器构成的一种辅助存储设备，<u>其目的是在计算机中代替传统的硬盘</u>。由于其接口规范功能及使用特性与普通硬盘完全相同,起初外形和尺寸也保持一致，所以人们把这类存储器称为“固态硬盘”</p><h3 id="光盘"><a href="#光盘" class="headerlink" title="光盘"></a>光盘</h3><p>==<strong>CD是由里向外连续的螺旋光道；硬盘是由外向里的同心圆</strong>==</p><p><img src="https://bu.dusays.com/2023/08/20/64e1ce669114f.png" alt="image-20230819154006553" style="zoom: 33%;" /></p><div class="table-container"><table><thead><tr><th>代别</th><th>年代</th><th>名称</th><th>激光类型</th><th>存储容量</th></tr></thead><tbody><tr><td>第1代</td><td>1982</td><td>CD光盘存储器</td><td>红外光</td><td>650MB</td></tr><tr><td>第2代</td><td>1995</td><td>DVD光盘存储器</td><td>红光</td><td>4.7GB</td></tr><tr><td>第3代</td><td>2006</td><td>BD光盘存储器</td><td>蓝光</td><td>25GB</td></tr></tbody></table></div><h4 id="为什么DVD比CD容量大得多？"><a href="#为什么DVD比CD容量大得多？" class="headerlink" title="为什么DVD比CD容量大得多？"></a>为什么DVD比CD容量大得多？</h4><p><strong>DVD的道间距比CD盘小一半,且信息凹坑更加密集,它利用聚焦更细(108m)的红色激光进行信息的读取因而盘片的存储容量大大提高。</strong></p><p>1)<strong>更小的凹点长度</strong></p><p>2)<strong>数据轨道间隔更紧密</strong></p><p>3)采用较短波长的635nm或650nm的红色激光，使激光斑点直径缩小,提高信息的鉴别能力</p><p>4)数据区域稍大一点</p><p>5)更有效的信道比特调制</p><p>6)更有效的纠错码</p><p>7)较少的段开销</p><h4 id="⭐光盘类型"><a href="#⭐光盘类型" class="headerlink" title="⭐光盘类型"></a>⭐光盘类型</h4><p><img src="https://bu.dusays.com/2023/08/20/64e1ce68d6083.png" alt="image-20230819154729582" style="zoom:50%;" /></p><h4 id="⭐DVD"><a href="#⭐DVD" class="headerlink" title="⭐DVD"></a>⭐DVD</h4><div class="table-container"><table><thead><tr><th>DVD光盘类型</th><th>⭐120mmDVD存储容量(名称)</th><th>80mmDVD存储容量(名称)</th></tr></thead><tbody><tr><td>单面单层(SS/SL)</td><td>4.7 GB(DVD-5)</td><td>1.46 GB(DVD-1)</td></tr><tr><td>单面双层(SS/DL)</td><td>8.5 GB(DVD-9)</td><td>2.66 GB(DVD-2)</td></tr><tr><td>双面单层(DS/SL)</td><td>9.4 GB(DVD-10)</td><td>2.92 GB(DVD-3)</td></tr><tr><td>双面双层(DS/DL)</td><td>17 GB(DVD-18)</td><td>5.32 GB(DVD-4)</td></tr></tbody></table></div>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;计算机的组成和分类&quot;&gt;&lt;a href=&quot;#计算机的组成和分类&quot; class=&quot;headerlink&quot; title=&quot;计算机的组成和分类&quot;&gt;&lt;/a&gt;计算机的组成和分类&lt;/h2&gt;&lt;h3 id=&quot;计算机的发展&quot;&gt;&lt;a href=&quot;#计算机的发展&quot; class=&quot;head</summary>
      
    
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    <category term="计算机组成原理" scheme="https://blog.mxne.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E5%8E%9F%E7%90%86/"/>
    
  </entry>
  
  <entry>
    <title>计算机软件</title>
    <link href="https://blog.mxne.cn/posts/b82a.html"/>
    <id>https://blog.mxne.cn/posts/b82a.html</id>
    <published>2023-09-29T03:09:22.000Z</published>
    <updated>2023-09-29T03:15:30.000Z</updated>
    
    
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    <category term="计算机软件" scheme="https://blog.mxne.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E4%BB%B6/"/>
    
  </entry>
  
  <entry>
    <title>二维数组类编程题</title>
    <link href="https://blog.mxne.cn/posts/8656.html"/>
    <id>https://blog.mxne.cn/posts/8656.html</id>
    <published>2023-09-27T13:53:37.000Z</published>
    <updated>2023-09-28T13:05:10.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="最大值"><a href="#最大值" class="headerlink" title="最大值"></a>最大值</h2><ol><li>定义一个5*5的二维数组并初始化，找出数组中每行的最大值，放入一个新的数组。</li></ol><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr1[<span class="number">5</span>][<span class="number">5</span>] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">6</span>, <span class="number">3</span>, <span class="number">7</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">34</span>, <span class="number">4235</span>, <span class="number">5</span>, <span class="number">32</span>, <span class="number">4</span>&#125;,</span><br><span class="line">        &#123;<span class="number">354</span>, <span class="number">435</span>, <span class="number">34</span>, <span class="number">23</span>, <span class="number">54</span>&#125;,</span><br><span class="line">        &#123;<span class="number">325</span>, <span class="number">56</span>, <span class="number">98</span>, <span class="number">454</span>, <span class="number">3</span>&#125;,</span><br><span class="line">        &#123;<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">6</span>, <span class="number">4</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> arr2[<span class="number">5</span>] = &#123;<span class="number">0</span>&#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; <span class="number">5</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; <span class="number">5</span>; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr1[i][j] &gt; arr2[i])</span><br><span class="line">            &#123;</span><br><span class="line">                arr2[i] = arr1[i][j];</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; <span class="number">5</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr2[i]);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><ol><li>定义一个5*5的二维数组并初始化，找出数组中的最大值的坐标。</li></ol><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[<span class="number">5</span>][<span class="number">5</span>] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">6</span>, <span class="number">3</span>, <span class="number">7</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">34</span>, <span class="number">4235</span>, <span class="number">5</span>, <span class="number">32</span>, <span class="number">4</span>&#125;,</span><br><span class="line">        &#123;<span class="number">354</span>, <span class="number">435</span>, <span class="number">34</span>, <span class="number">23</span>, <span class="number">54</span>&#125;,</span><br><span class="line">        &#123;<span class="number">325</span>, <span class="number">56</span>, <span class="number">98</span>, <span class="number">454</span>, <span class="number">3</span>&#125;,</span><br><span class="line">        &#123;<span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>, <span class="number">6</span>, <span class="number">4</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="type">int</span> max_i = <span class="number">0</span>, max_j = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; <span class="number">5</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; <span class="number">5</span>; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[i][j] &gt; arr[max_i][max_j])</span><br><span class="line">            &#123;</span><br><span class="line">                max_i = i;</span><br><span class="line">                max_j = j;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, arr[max_i][max_j]);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="对角线"><a href="#对角线" class="headerlink" title="对角线"></a>对角线</h2><ol><li>判断 a[N][N] 是否关于主对角线<strong>对称</strong>(左斜),若对称输出 YES,否则输出 NO。</li></ol><blockquote><p>主对角线：从左上角到右下角</p></blockquote><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> N 5</span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[N][N] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">2</span>, <span class="number">1</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">4</span>&#125;,</span><br><span class="line">        &#123;<span class="number">3</span>, <span class="number">3</span>, <span class="number">1</span>, <span class="number">0</span>, <span class="number">3</span>&#125;,</span><br><span class="line">        &#123;<span class="number">4</span>, <span class="number">2</span>, <span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>&#125;,</span><br><span class="line">        &#123;<span class="number">5</span>, <span class="number">4</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">1</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="type">int</span> flag = <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++) <span class="comment">// i=0,1,2,3,4</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = i + <span class="number">1</span>; j &lt; N; j++) <span class="comment">// j=1,2,3,4</span></span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[i][j] != arr[j][i])</span><br><span class="line">            &#123;</span><br><span class="line">                flag = <span class="number">0</span>;</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span>(flag == <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">break</span>;</span><br><span class="line">&#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (flag == <span class="number">1</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;YES&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;NO&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><ol><li>判断 a[N][N]是否关于次对角线<strong>对称</strong>(右斜),若对称输出 YES,否则输出 NO。</li></ol><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[N][N] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">6</span>, <span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>, <span class="number">10</span>&#125;,</span><br><span class="line">        &#123;<span class="number">11</span>, <span class="number">12</span>, <span class="number">13</span>, <span class="number">14</span>, <span class="number">15</span>&#125;,</span><br><span class="line">        &#123;<span class="number">16</span>, <span class="number">17</span>, <span class="number">18</span>, <span class="number">19</span>, <span class="number">20</span>&#125;,</span><br><span class="line">        &#123;<span class="number">21</span>, <span class="number">22</span>, <span class="number">23</span>, <span class="number">24</span>, <span class="number">25</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="type">int</span> flag = <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; N - i - <span class="number">1</span>; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[i][j] != arr[N - j - <span class="number">1</span>][N - i - <span class="number">1</span>])</span><br><span class="line">            &#123;</span><br><span class="line">                flag = <span class="number">0</span>;</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span> (flag == <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">break</span>;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (flag == <span class="number">1</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;YES&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;NO&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><ol><li>分别求出 N 阶方阵 a 中两个对角线上元素之和。</li></ol><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[N][N] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">6</span>, <span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>, <span class="number">10</span>&#125;,</span><br><span class="line">        &#123;<span class="number">11</span>, <span class="number">12</span>, <span class="number">13</span>, <span class="number">14</span>, <span class="number">15</span>&#125;,</span><br><span class="line">        &#123;<span class="number">16</span>, <span class="number">17</span>, <span class="number">18</span>, <span class="number">19</span>, <span class="number">20</span>&#125;,</span><br><span class="line">        &#123;<span class="number">21</span>, <span class="number">22</span>, <span class="number">23</span>, <span class="number">24</span>, <span class="number">25</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="type">int</span> sum1 = <span class="number">0</span>, sum2 = <span class="number">0</span>;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        sum1 = sum1 + arr[i][i];</span><br><span class="line">        sum2 = sum2 + arr[i][N - i - <span class="number">1</span>];</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d\n&quot;</span>, sum1);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d\n&quot;</span>, sum2);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><ol><li>定义一个5*5的二维数组并初始化，分别计算出两条对角线的和各为多少。</li></ol><blockquote><p>主对角线：arr[0][0]、arr[1][1]、arr[2][2]、arr[3][3]</p><p>辅对角线：arr[0][3]、arr[1][2]、arr[2][1]、arr[3][0]</p></blockquote><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br></pre></td><td class="code"><pre><span class="line">方法<span class="number">1</span>：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[N][N] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">6</span>, <span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>, <span class="number">10</span>&#125;,</span><br><span class="line">        &#123;<span class="number">11</span>, <span class="number">12</span>, <span class="number">13</span>, <span class="number">14</span>, <span class="number">15</span>&#125;,</span><br><span class="line">        &#123;<span class="number">16</span>, <span class="number">17</span>, <span class="number">18</span>, <span class="number">19</span>, <span class="number">20</span>&#125;,</span><br><span class="line">        &#123;<span class="number">21</span>, <span class="number">22</span>, <span class="number">23</span>, <span class="number">24</span>, <span class="number">25</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="type">int</span> sum1 = <span class="number">0</span>, sum2 = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        sum1 += arr[i][i];</span><br><span class="line">        sum2 += arr[i][N - i - <span class="number">1</span>];</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;sum1 = %d\nsum2 = %d&quot;</span>, sum1, sum2);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">方法<span class="number">2</span>：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[N][N] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">6</span>, <span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>, <span class="number">10</span>&#125;,</span><br><span class="line">        &#123;<span class="number">11</span>, <span class="number">12</span>, <span class="number">13</span>, <span class="number">14</span>, <span class="number">15</span>&#125;,</span><br><span class="line">        &#123;<span class="number">16</span>, <span class="number">17</span>, <span class="number">18</span>, <span class="number">19</span>, <span class="number">20</span>&#125;,</span><br><span class="line">        &#123;<span class="number">21</span>, <span class="number">22</span>, <span class="number">23</span>, <span class="number">24</span>, <span class="number">25</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="type">int</span> sum1 = <span class="number">0</span>, sum2 = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; N; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (i == j)</span><br><span class="line">            &#123;</span><br><span class="line">                sum1 += arr[i][j];</span><br><span class="line">            &#125;</span><br><span class="line">            <span class="keyword">if</span> (i + j == N)</span><br><span class="line">            &#123;</span><br><span class="line">                sum2 += arr[i][j];</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;sum1 = %d\nsum2 = %d&quot;</span>, sum1, sum2);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="反转"><a href="#反转" class="headerlink" title="反转"></a>反转</h2><ol><li>上下对称反转</li></ol><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> ROW 4</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> COL 5</span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[ROW][COL] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">6</span>, <span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>, <span class="number">10</span>&#125;,</span><br><span class="line">        &#123;<span class="number">11</span>, <span class="number">12</span>, <span class="number">13</span>, <span class="number">14</span>, <span class="number">15</span>&#125;,</span><br><span class="line">        &#123;<span class="number">16</span>, <span class="number">17</span>, <span class="number">18</span>, <span class="number">19</span>, <span class="number">20</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> tmp;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROW / <span class="number">2</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; COL; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            tmp = arr[i][j];</span><br><span class="line">            arr[i][j] = arr[ROW - <span class="number">1</span> - i][j];</span><br><span class="line">            arr[ROW - <span class="number">1</span> - i][j] = tmp;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROW; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; COL; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, arr[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    </span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line">输出：</span><br><span class="line"><span class="number">16</span>      <span class="number">17</span>      <span class="number">18</span>      <span class="number">19</span>      <span class="number">20</span></span><br><span class="line"><span class="number">11</span>      <span class="number">12</span>      <span class="number">13</span>      <span class="number">14</span>      <span class="number">15</span></span><br><span class="line"><span class="number">6</span>       <span class="number">7</span>       <span class="number">8</span>       <span class="number">9</span>       <span class="number">10</span></span><br><span class="line"><span class="number">1</span>       <span class="number">2</span>       <span class="number">3</span>       <span class="number">4</span>       <span class="number">5</span></span><br></pre></td></tr></table></figure><ol><li>左右对称反转</li></ol><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> ROW 4</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> COL 5</span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[ROW][COL] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">6</span>, <span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>, <span class="number">10</span>&#125;,</span><br><span class="line">        &#123;<span class="number">11</span>, <span class="number">12</span>, <span class="number">13</span>, <span class="number">14</span>, <span class="number">15</span>&#125;,</span><br><span class="line">        &#123;<span class="number">16</span>, <span class="number">17</span>, <span class="number">18</span>, <span class="number">19</span>, <span class="number">20</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> tmp;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROW; i++) <span class="comment">// i=0,1,2,3</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; COL / <span class="number">2</span>; j++) <span class="comment">// j=0,1</span></span><br><span class="line">        &#123;</span><br><span class="line">            tmp = arr[i][j];</span><br><span class="line">            arr[i][j] = arr[i][COL - j - <span class="number">1</span>];</span><br><span class="line">            arr[i][COL - j - <span class="number">1</span>] = tmp;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROW; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; COL; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, arr[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">输出：</span><br><span class="line"><span class="number">5</span>       <span class="number">4</span>       <span class="number">3</span>       <span class="number">2</span>       <span class="number">1</span></span><br><span class="line"><span class="number">10</span>      <span class="number">9</span>       <span class="number">8</span>       <span class="number">7</span>       <span class="number">6</span></span><br><span class="line"><span class="number">15</span>      <span class="number">14</span>      <span class="number">13</span>      <span class="number">12</span>      <span class="number">11</span></span><br><span class="line"><span class="number">20</span>      <span class="number">19</span>      <span class="number">18</span>      <span class="number">17</span>      <span class="number">16</span></span><br></pre></td></tr></table></figure><ol><li>上下左右反转</li></ol><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> ROW 4</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> COL 5</span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[ROW][COL] = &#123;</span><br><span class="line">        &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>&#125;,</span><br><span class="line">        &#123;<span class="number">6</span>, <span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>, <span class="number">10</span>&#125;,</span><br><span class="line">        &#123;<span class="number">11</span>, <span class="number">12</span>, <span class="number">13</span>, <span class="number">14</span>, <span class="number">15</span>&#125;,</span><br><span class="line">        &#123;<span class="number">16</span>, <span class="number">17</span>, <span class="number">18</span>, <span class="number">19</span>, <span class="number">20</span>&#125;,</span><br><span class="line">    &#125;;</span><br><span class="line">    <span class="type">int</span> tmp;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="comment">// 上下对称反转</span></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROW / <span class="number">2</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; COL; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            tmp = arr[i][j];</span><br><span class="line">            arr[i][j] = arr[ROW - i - <span class="number">1</span>][j];</span><br><span class="line">            arr[ROW - i - <span class="number">1</span>][j] = tmp;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">// 左右对称反转</span></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROW; i++) <span class="comment">// i=0,1,2,3</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; COL / <span class="number">2</span>; j++) <span class="comment">// j=0,1</span></span><br><span class="line">        &#123;</span><br><span class="line">            tmp = arr[i][j];</span><br><span class="line">            arr[i][j] = arr[i][COL - j - <span class="number">1</span>];</span><br><span class="line">            arr[i][COL - j - <span class="number">1</span>] = tmp;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">// 打印</span></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; ROW; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; COL; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, arr[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line">输出：</span><br><span class="line"><span class="number">20</span>      <span class="number">19</span>      <span class="number">18</span>      <span class="number">17</span>      <span class="number">16</span></span><br><span class="line"><span class="number">15</span>      <span class="number">14</span>      <span class="number">13</span>      <span class="number">12</span>      <span class="number">11</span></span><br><span class="line"><span class="number">10</span>      <span class="number">9</span>       <span class="number">8</span>       <span class="number">7</span>       <span class="number">6</span></span><br><span class="line"><span class="number">5</span>       <span class="number">4</span>       <span class="number">3</span>       <span class="number">2</span>       <span class="number">1</span></span><br></pre></td></tr></table></figure><h2 id="杨辉三角"><a href="#杨辉三角" class="headerlink" title="杨辉三角"></a>杨辉三角</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> N 10</span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[N][N] = &#123;<span class="number">0</span>&#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt;= i; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (i == j || j == <span class="number">0</span>)</span><br><span class="line">            &#123;</span><br><span class="line">                arr[i][j] = <span class="number">1</span>;</span><br><span class="line">            &#125;</span><br><span class="line">            <span class="keyword">else</span></span><br><span class="line">            &#123;</span><br><span class="line">                arr[i][j] = arr[i - <span class="number">1</span>][j] + arr[i - <span class="number">1</span>][j - <span class="number">1</span>];</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt;= i; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="斐波那契"><a href="#斐波那契" class="headerlink" title="斐波那契"></a>斐波那契</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> N 20</span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[N] = &#123;<span class="number">1</span>, <span class="number">1</span>&#125;;</span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">2</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        arr[i] = arr[i - <span class="number">1</span>] + arr[i - <span class="number">2</span>];</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr[i]);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="元素互换"><a href="#元素互换" class="headerlink" title="元素互换"></a>元素互换</h2><p>将一个二维数组的行和列的元素互换，并输出。</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr1[<span class="number">2</span>][<span class="number">3</span>] = &#123;<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>&#125;;</span><br><span class="line">    <span class="type">int</span> arr2[<span class="number">3</span>][<span class="number">2</span>] = &#123;<span class="number">0</span>&#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; <span class="number">2</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; <span class="number">3</span>; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr1[i][j]);</span><br><span class="line">            arr2[j][i] = arr1[i][j];</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; <span class="number">3</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; <span class="number">2</span>; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr2[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">输出：</span><br><span class="line"><span class="number">1</span> <span class="number">2</span> <span class="number">3</span> </span><br><span class="line"><span class="number">4</span> <span class="number">5</span> <span class="number">6</span></span><br><span class="line"></span><br><span class="line"><span class="number">1</span> <span class="number">4</span></span><br><span class="line"><span class="number">2</span> <span class="number">5</span></span><br><span class="line"><span class="number">3</span> <span class="number">6</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;最大值&quot;&gt;&lt;a href=&quot;#最大值&quot; class=&quot;headerlink&quot; title=&quot;最大值&quot;&gt;&lt;/a&gt;最大值&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;定义一个5*5的二维数组并初始化，找出数组中每行的最大值，放入一个新的数组。&lt;/li&gt;
&lt;/ol&gt;
&lt;figure cl</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="C语言语法" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80%E8%AF%AD%E6%B3%95/"/>
    
  </entry>
  
  <entry>
    <title>信息技术</title>
    <link href="https://blog.mxne.cn/posts/f058.html"/>
    <id>https://blog.mxne.cn/posts/f058.html</id>
    <published>2023-08-11T10:14:50.000Z</published>
    <updated>2023-09-27T14:02:30.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="信息与信息技术"><a href="#信息与信息技术" class="headerlink" title="信息与信息技术"></a>信息与信息技术</h2><h3 id="数据和信息"><a href="#数据和信息" class="headerlink" title="数据和信息"></a>数据和信息</h3><h4 id="数据"><a href="#数据" class="headerlink" title="数据"></a>数据</h4><p>数据是<strong>原始未加工的</strong>，数据可分为 <strong>数值型数据</strong> 和 <strong>非数值型数据</strong></p><h4 id="信息"><a href="#信息" class="headerlink" title="信息"></a>信息</h4><p>定义：信息是客观世界中各种 <strong>事物运动状态</strong> 和 <strong>变化内容的反映</strong>，是认识主体对客观事物状态和变化的感知。</p><p>信息是人们认识世界和改造世界的一种 基本资源</p><p>信息是对数据进行 <strong>处理后</strong> 得到对人有用的东西</p><h4 id="数据和信息的关系"><a href="#数据和信息的关系" class="headerlink" title="数据和信息的关系"></a>数据和信息的关系</h4><ol><li><p>数据是信息的载体</p></li><li><p>数据是信息的符号化表示</p></li><li><p>信息是数据的语义解释【信息=数据+语义】</p></li><li><p>信息来源于数据，因此 数据中包含信息</p></li></ol><p>客观世界三大要素：信息、物质、能量【信息同物质能源同样重要】</p><blockquote><p>注意：</p><p><strong>信息是一种资源</strong>，信息既不是物质，也不是能量。</p><p>数据是原始未加工的，而信息是通过对数据加工得到的；</p></blockquote><h3 id="信息处理与信息技术"><a href="#信息处理与信息技术" class="headerlink" title="信息处理与信息技术"></a>信息处理与信息技术</h3><h4 id="信息处理"><a href="#信息处理" class="headerlink" title="信息处理"></a>信息处理</h4><p>信息的处理（行为与活动）：信息的收集、信息的加工、信息的存储、信息的传递、信息的施用</p><ol><li>信息的收集 (如信息的感知、测量、获取、输入等)</li><li>信息的传递 (如邮寄、出版、电话、广播、微信等)</li><li>信息的加工 (如分类、计算、分析、转换、检索等)</li><li>信息的存储 (如书写、摄影、录音、录像等)</li><li>信息的施用 (如控制、显示、导航、机器人等)</li></ol><h4 id="信息技术【计算机帮助人做的事】"><a href="#信息技术【计算机帮助人做的事】" class="headerlink" title="信息技术【计算机帮助人做的事】"></a>信息技术【计算机帮助人做的事】</h4><p>信息技术（IT）：用来<strong>扩展</strong>人们信息器官功能，<strong>协助</strong>人们更有效地进行信息处理的一类技术</p><ol><li>扩展 <strong>感觉器官</strong> 功能的 <strong>感测（获取）与识别技术</strong></li><li>扩展 <strong>神经系统</strong> 功能的 <strong>通信技术</strong></li><li>扩展 <strong>大脑</strong> 功能的 <strong>计算（处理）与存储技术</strong></li><li>扩展 <strong>效应器官</strong> 功能的 <strong>控制与显示技术</strong></li></ol><p>现代电子信息技术主要特征：以数字技术（计算机）为基础，软件与通信技术为核心，采用电子技术（包括激光技术）进行信息的收集、加工、存储、传递、施用。</p><h4 id="信息化和信息社会"><a href="#信息化和信息社会" class="headerlink" title="信息化和信息社会"></a>信息化和信息社会</h4><p>第一次工业革命：蒸汽机</p><p>第二次工业革命：电动机、发电机</p><p>第三次工业革命：信息技术</p><p>目前我国正处于工业化中后期，我们要抓住机遇，大力推进工业化和信息化深度融合，实现工 <strong>业化、信息化、城镇化、农业现代化</strong> “四化”同步发展</p><h2 id="数字技术基础"><a href="#数字技术基础" class="headerlink" title="数字技术基础"></a>数字技术基础</h2><h3 id="什么是比特"><a href="#什么是比特" class="headerlink" title="什么是比特"></a>什么是比特</h3><ol><li>比特只有两种状态（值）：数字0 / 数字1</li><li>数字技术中比特是信息的<strong>最小单位</strong>；比特是计算机和其他所有数字设备存储，处理和传输的最小单位</li><li>比特既可以表示数值、文字，也可以表示图像、声音等</li></ol><blockquote><p>区分B和b：</p><p>1B = 8b【B是Byte，b是bit】</p></blockquote><h3 id="比特的存储"><a href="#比特的存储" class="headerlink" title="比特的存储"></a>比特的存储</h3><p>存储方式：使用具有两种稳定状态的器件</p><div class="table-container"><table><thead><tr><th>设备</th><th>存储bit的元器件</th><th>表示方法</th></tr></thead><tbody><tr><td>CPU</td><td>触发器</td><td>电路的高电平状态与低电平状态</td></tr><tr><td>内存</td><td>电容器</td><td>电容器的充电状态和放电状态</td></tr><tr><td>硬盘</td><td>磁介质</td><td>磁性介质的磁化状态</td></tr><tr><td>光盘</td><td>由内向外的螺旋光光道【刻制和读取都靠激光】</td><td>凹坑边缘【1】，内外平坦处【0】</td></tr></tbody></table></div><p>比特 <strong>存储</strong> 容量单位<strong>(2^10)</strong>： </p><p>1KB = 1024B 【大写K表示<strong>1024</strong>】</p><p>1MB = 1024KB</p><p>1GB = 1024MB</p><p>1TB = 1024GB</p><blockquote><p>注意：内存、cache、文件和文件夹的容量 是1024</p></blockquote><h3 id="比特的传输"><a href="#比特的传输" class="headerlink" title="比特的传输"></a>比特的传输</h3><p>比特 <strong>传输</strong> 速率单位<strong>(10^3)</strong>：</p><p>1b/s 也叫 1bps</p><p>1kb/s = 1000b/s 【小写K表示<strong>1000</strong>】注意这里是小k</p><p>1Mb/s = 1000Kb/s</p><p>1Gb/s = 1000Mb/s</p><p>1Tb/s = 1000Gb/s</p><blockquote><p>注意：外存、传输速率、频率 是1000</p></blockquote><h3 id="比特的运算"><a href="#比特的运算" class="headerlink" title="比特的运算"></a>比特的运算</h3><h4 id="算术运算"><a href="#算术运算" class="headerlink" title="算术运算"></a>算术运算</h4><p>算术运算分为：算术加，算术减</p><p>多位算术运算需进/借位运算；算术运算结果<strong>可能</strong>产生溢出</p><h4 id="逻辑运算"><a href="#逻辑运算" class="headerlink" title="逻辑运算"></a>逻辑运算</h4><p>逻辑加【或 / OR / V / +】:全零为零，有一为一</p><p>逻辑乘【与 / AND / Λ / ·】:全一为一，有零为零</p><p>取反：一变零，零变一</p><p>异或【】:同0异1</p><p>同或【】:相同为一，相异为零</p><p>多位逻辑运算按位独立运算；逻辑运算结果<strong>不可能</strong>产生溢</p><h3 id="进制转化⭐"><a href="#进制转化⭐" class="headerlink" title="进制转化⭐"></a>进制转化⭐</h3><p>十进制 转 N进制 ：整数部分 除N取余，逆取。 小数部分 乘N取整，顺取。</p><p>N进制 转 十进制：按权展开，再累加</p><blockquote><p>注意：二进制 转 八进制：三位合一位；二进制 转 十六进制：四位合一位 （反过来一样）</p></blockquote><h3 id="信息在计算机中的表示"><a href="#信息在计算机中的表示" class="headerlink" title="信息在计算机中的表示"></a>信息在计算机中的表示</h3><h4 id="数值信息的表示"><a href="#数值信息的表示" class="headerlink" title="数值信息的表示"></a>数值信息的表示</h4><h5 id="整数（定点数）"><a href="#整数（定点数）" class="headerlink" title="整数（定点数）"></a>整数（定点数）</h5><ol><li><p>无符号整数：8位二进制的范围：0~255【$2^n-1$】 <strong>两种0的表示</strong></p></li><li><p>有符号整数：<strong>一种0的表示</strong></p></li></ol><p>8位二进制<strong>原码</strong>的范围：-127 ~ 127【-$2^{n-1}$+1 ~ $2^{n-1}$-1】</p><p>8位二进制<strong>补码</strong>的范围：-128 ~ 127【-$2^{n-1}$ ~ $2^{n-1}$-1】</p><blockquote><p>注意</p><p>最高位变为符号位：0正1负</p><p><strong>有符号整数的原码 0000…0000 = 1000…0000，都表示 0</strong></p><p><strong>有符号整数的补码 0000…0000表示0；1000…0000表示-$2^{n-1}$</strong>；例：8位二进制 0000 0000为0，1000 0000为-128</p></blockquote><h5 id="小数-实数【浮点数】"><a href="#小数-实数【浮点数】" class="headerlink" title="小数/实数【浮点数】"></a>小数/实数【浮点数】</h5><p>浮点数 = 尾数【小数】 + 指数【阶码】</p><p>尾数：决定了浮点数的精度（小数）</p><blockquote><p>注意</p><p>同一个数的浮点数表示形式并不惟一，浮点数表示的范围比定点数大得多</p></blockquote><h5 id="原码、反码、补码"><a href="#原码、反码、补码" class="headerlink" title="原码、反码、补码"></a>原码、反码、补码</h5><p>正数的原码、反码、补码相同</p><p>负数的<strong>反码</strong>为原码除符号位取反</p><p>负数的<strong>补码</strong>为原码除符号位取反+1</p><h4 id="文字符号的表示"><a href="#文字符号的表示" class="headerlink" title="文字符号的表示"></a>文字符号的表示</h4><p>计算机使用最广泛的西文字符集及其编码是<strong>ASCII码</strong>，即<strong>美国信息交换标准码</strong></p><p>基本的ASCII字符集共有<strong>128个字符</strong>，其中包含 <strong>96个可打印字符，32个控制字符</strong>。<strong>最高位为0，奇偶校验的作用</strong>。汉字最高位为1。</p><p>每个ASCII字符使用<strong>7个二进制编码</strong>，<strong>8个二进制进行存储/传输</strong></p><p>计算机中英文字母采用ASCI 码存储，每一个ASCII字符存储占用1字节。</p><p>空格 &lt; 数字 &lt; 大写 &lt; 小写</p><h2 id="微电子技术"><a href="#微电子技术" class="headerlink" title="微电子技术"></a>微电子技术</h2><h3 id="微电子技术与集成电路"><a href="#微电子技术与集成电路" class="headerlink" title="微电子技术与集成电路"></a>微电子技术与集成电路</h3><p>==微电子技术以集成电路为核心；集成电路芯片是信息产业的基础==</p><p>集成电路【IC】：以半导体单晶片作为材料，采用平面工艺加工，将晶体管，电阻，电容等元器件及其连线所构成的电子线路集成在基片上，构成一个微型化的电路或系统。【半导体材料：纯净物 硅(Si)、化合物 砷化镓(GaAs)】</p><p>集成电路的优点：体积小、重量轻、功耗小、成本低、速度快、可靠性高</p><h3 id="集成电路的分类"><a href="#集成电路的分类" class="headerlink" title="集成电路的分类"></a>集成电路的分类</h3><ol><li>按电子元件数目【集成度】</li></ol><ul><li><p>小规模集成电路【SSI】</p></li><li><p>中规模集成电路【MSI】</p></li><li><p>大规模集成电路【LSI】</p></li><li><p><strong>超大规模集成电路【VLSI】</strong></p></li><li><p>极大规模集成电路【ULSI】</p></li></ul><blockquote><p>注意：</p><p>PC 机使用的微处理器、芯片组、图形加速芯片都是 ==超大规模== 和极大规模集成电路。</p><p>中小规模集成电路集成对象：门电路或单级放大器；大规模集成电路集成对象：功能部件、子系统；</p></blockquote><ol><li>按晶体管结构、电路和工艺</li></ol><ul><li>双极型集成电路</li><li>金属氧化物半导体集成电路</li><li>双极-金属氧化物半导体集成电路</li></ul><ol><li>按功能</li></ol><ul><li>数字集成电路</li><li>模拟集成电路</li></ul><ol><li>按用途</li></ol><ul><li><p>通用集成电路【CPU，存储器】</p></li><li><p>专用集成电路</p></li></ul><h3 id="集成电路的制造"><a href="#集成电路的制造" class="headerlink" title="集成电路的制造"></a>集成电路的制造</h3><p>技术指标：线宽【纳米】</p><p>工艺技术：硅平面工艺</p><h3 id="集成电路发展趋势"><a href="#集成电路发展趋势" class="headerlink" title="集成电路发展趋势"></a>集成电路发展趋势</h3><p>摩尔定律【Moore】：集成度每 <strong>18~24月</strong> 翻一番【逐渐失效】</p><p>集成电路性能指标：集成电路的工作速度主要取决于组成逻辑门电路的<strong>晶体管尺寸</strong>。晶体管尺寸<strong>越小</strong>，工作频率<strong>越高</strong>，门电路的<strong>开关速度就越快</strong>，相同面积的晶片可容纳的晶体管数目就<strong>越多</strong>。</p><blockquote><p>扩展：台积电:中国台湾。海思:中国深圳。英伟达、高通:均为美国企业。</p></blockquote><h3 id="集成电路卡【IC卡】"><a href="#集成电路卡【IC卡】" class="headerlink" title="集成电路卡【IC卡】"></a>集成电路卡【IC卡】</h3><h4 id="IC卡的特点"><a href="#IC卡的特点" class="headerlink" title="IC卡的特点"></a>IC卡的特点</h4><ul><li>存储信息大，保密性强</li><li>防止伪造和窃应</li><li>抗干扰能力强，可靠性高</li></ul><h4 id="IC卡的分类"><a href="#IC卡的分类" class="headerlink" title="IC卡的分类"></a>IC卡的分类</h4><h5 id="按集成电路芯片"><a href="#按集成电路芯片" class="headerlink" title="按集成电路芯片"></a>按集成电路芯片</h5><ol><li>存储器卡</li></ol><p>应用：校园卡、公交卡</p><ol><li>CPU卡</li></ol><p>应用：SIM卡、银行卡</p><h5 id="按使用方式"><a href="#按使用方式" class="headerlink" title="按使用方式"></a>按使用方式</h5><ol><li>接触式IC卡</li></ol><p>表面有方形镀金结构，共有8个或6个镀金触点。插入读卡机卡口中，通过金属触点传输数据【接触传电导电】</p><p>特点：用于信息量大，读写操作比较复杂的场合，但<strong>易磨损，怕脏、寿命短</strong></p><ol><li>非接触式IC卡</li></ol><p>卡中无电池，利用 <strong>电磁感应</strong> 无线传输数据</p><p>特点：用于读写信息比较简单的场合。操作方便，快捷，采用全密封胶固化，<strong>防水，防污，使用寿命长</strong></p><p>应用：二代居民身份证、公交卡</p><p>衍生：电子标签【RFID】，应用：ETC</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;信息与信息技术&quot;&gt;&lt;a href=&quot;#信息与信息技术&quot; class=&quot;headerlink&quot; title=&quot;信息与信息技术&quot;&gt;&lt;/a&gt;信息与信息技术&lt;/h2&gt;&lt;h3 id=&quot;数据和信息&quot;&gt;&lt;a href=&quot;#数据和信息&quot; class=&quot;headerlink&quot; ti</summary>
      
    
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    
    <category term="计算机基础" scheme="https://blog.mxne.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/"/>
    
    <category term="信息技术" scheme="https://blog.mxne.cn/tags/%E4%BF%A1%E6%81%AF%E6%8A%80%E6%9C%AF/"/>
    
  </entry>
  
  <entry>
    <title>特殊数字类编程题</title>
    <link href="https://blog.mxne.cn/posts/772b.html"/>
    <id>https://blog.mxne.cn/posts/772b.html</id>
    <published>2023-08-08T07:02:24.000Z</published>
    <updated>2023-09-27T13:59:28.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="奇数"><a href="#奇数" class="headerlink" title="奇数"></a>奇数</h2><p>奇数：输出 1-1000 之间所有的奇数。</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line">方法<span class="number">1</span>：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt;= <span class="number">1000</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (i % <span class="number">2</span> == <span class="number">1</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">方法<span class="number">2</span>：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt;= <span class="number">1000</span>; i += <span class="number">2</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="偶数"><a href="#偶数" class="headerlink" title="偶数"></a>偶数</h2><p>偶数：输出 1-1000 之间所有的偶数。</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">方法<span class="number">1</span>：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt;= <span class="number">1000</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (i % <span class="number">2</span> == <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="素数"><a href="#素数" class="headerlink" title="素数"></a>素数</h2><p>素数：输出 1-1000 之间所有的素数。</p><blockquote><p>素数：除了 1 和它本身以外，不能被任何整数整除的数</p></blockquote><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt;= <span class="number">1000</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">2</span>; j &lt; i; j++)   <span class="comment">// j &lt; i / 2  或者  j &lt; (int)sqrt((double)i)都可</span></span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (i % j == <span class="number">0</span>)</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span> (i == j)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="完全数"><a href="#完全数" class="headerlink" title="完全数"></a>完全数</h2><p>完全数：输出 1-1000 之间所有的完数。</p><blockquote><p>完全数：它所有的真因子（即除了自身以外的<a href="https：//baike.baidu.com/item/约数/8417882?fromModule=lemma_inlink">约数</a>）的和（即因子函数），恰好等于它本身。例如：28，它有约数1、2、4、7、14、28，除去它本身28外，其余5个数相加，1+2+4+7+14=28</p></blockquote><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="type">int</span> sum;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt; <span class="number">1000</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        sum = <span class="number">0</span>;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">1</span>; j &lt; i; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (i % j == <span class="number">0</span>)</span><br><span class="line">            &#123;</span><br><span class="line">                sum = sum + j;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span> (sum == i)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="回文数"><a href="#回文数" class="headerlink" title="回文数"></a>回文数</h2><p>回文数：输出 100-999 之间所有的回文数。</p><blockquote><p>回文数：一个数字从左边读和从右边读的结果是一模一样的，例如：121</p></blockquote><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br></pre></td><td class="code"><pre><span class="line">方法<span class="number">1</span>：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="type">int</span> g, s, b;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">100</span>; i &lt;= <span class="number">999</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        g = i % <span class="number">10</span>;</span><br><span class="line">        s = i / <span class="number">10</span> % <span class="number">10</span>;</span><br><span class="line">        b = i / <span class="number">100</span>;</span><br><span class="line">        <span class="keyword">if</span> (g * <span class="number">100</span> + s * <span class="number">10</span> + b == i)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">方法<span class="number">2</span>：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="type">int</span> g, b;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">100</span>; i &lt; <span class="number">1000</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        g = i % <span class="number">10</span>;</span><br><span class="line">        b = i / <span class="number">100</span>;</span><br><span class="line">        <span class="keyword">if</span> (g == b)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">⭐判断一个数不是不是回文数【不限范围】：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> num = <span class="number">0</span>;</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;num);</span><br><span class="line">    <span class="type">int</span> res = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> i = num;</span><br><span class="line">    <span class="keyword">while</span> (i)</span><br><span class="line">    &#123;</span><br><span class="line">        res = res * <span class="number">10</span> + i % <span class="number">10</span>;</span><br><span class="line">        i = i / <span class="number">10</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (res == num)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d 是回文数&quot;</span>, num);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d 不是回文数&quot;</span>, num);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="水仙花数"><a href="#水仙花数" class="headerlink" title="水仙花数"></a>水仙花数</h2><p>水仙花数：输出 100-999 之间所有的水仙花数。</p><blockquote><p>水仙花数：一个 3 位数，它的每个数位上的数字的 3次幂之和等于它本身。</p></blockquote><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="type">int</span> g, s, b;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">100</span>; i &lt; <span class="number">1000</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        g = i % <span class="number">10</span>;</span><br><span class="line">        s = i / <span class="number">10</span> % <span class="number">10</span>;</span><br><span class="line">        b = i / <span class="number">100</span>;</span><br><span class="line">        <span class="keyword">if</span> (g * g * g + s * s * s + b * b * b == i)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="中位数"><a href="#中位数" class="headerlink" title="中位数"></a>中位数</h2><p>中位数：找出一组数据中的中位数</p><blockquote><p>思路：先把数据排序。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;如果数据的个数是偶数,则中间那 2 个数据的算术平均值就是这群数据的中位数。</p></blockquote><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[] = &#123;<span class="number">10</span>, <span class="number">9</span>, <span class="number">8</span>, <span class="number">7</span>, <span class="number">6</span>, <span class="number">5</span>, <span class="number">4</span>, <span class="number">3</span>, <span class="number">2</span>, <span class="number">1</span>&#125;;</span><br><span class="line">    <span class="type">int</span> sz = <span class="keyword">sizeof</span>(arr) / <span class="keyword">sizeof</span>(arr[<span class="number">0</span>]);</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="comment">// 冒泡排序</span></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; sz - <span class="number">1</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; sz - i - <span class="number">1</span>; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (arr[j] &gt; arr[j + <span class="number">1</span>])</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="type">int</span> tmp = arr[j];</span><br><span class="line">                arr[j] = arr[j + <span class="number">1</span>];</span><br><span class="line">                arr[j + <span class="number">1</span>] = tmp;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (sz % <span class="number">2</span> == <span class="number">1</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d 是中位数&quot;</span>, arr[sz / <span class="number">2</span>]);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%.2f 是中位数&quot;</span>, (arr[sz / <span class="number">2</span>] + arr[sz / <span class="number">2</span> - <span class="number">1</span>]) / <span class="number">2.0</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="完全平方数"><a href="#完全平方数" class="headerlink" title="完全平方数"></a>完全平方数</h2><p>完全平方数：若一个数能表示成某个数的平方的形式,则称这个数为完全平方数</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br></pre></td><td class="code"><pre><span class="line">判断是否为完全平方数：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> num = <span class="number">0</span>;</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;num);</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="type">int</span> flat = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt; (<span class="type">int</span>)<span class="built_in">sqrt</span>((<span class="type">double</span>)num); i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (i * i == num)</span><br><span class="line">        &#123;</span><br><span class="line">            flat = <span class="number">1</span>;</span><br><span class="line">            <span class="keyword">break</span>;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (flat)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d是完全数&quot;</span>, num);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d不是完全数&quot;</span>, num);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">输出指定范围的完全平方数：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1</span>; i &lt; <span class="number">100</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">1</span>; j &lt;= (<span class="type">int</span>)<span class="built_in">sqrt</span>((<span class="type">double</span>)i); j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (j * j == i)</span><br><span class="line">            &#123;</span><br><span class="line">                <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="随机数"><a href="#随机数" class="headerlink" title="随机数"></a>随机数</h2><p>随机数：生成 10 个 1(含 1)-100(含 100)之间的随机数。</p><blockquote><p>不要忘了引入库 <code>stdlib.h</code>和<code>time.h</code></p></blockquote><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;time.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdlib.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="type">int</span> res;</span><br><span class="line">    srand((<span class="type">unsigned</span>)time(<span class="literal">NULL</span>));   <span class="comment">// 播种</span></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; <span class="number">10</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        res = rand() % <span class="number">100</span> + <span class="number">1</span>;   <span class="comment">// 生成随机数</span></span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, res);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="求年份"><a href="#求年份" class="headerlink" title="求年份"></a>求年份</h2><p>求年份：输出 2000(含 2000)-2020(含 2020)之间所有的闰年年份</p><blockquote><p>普通闰年：公历年份是 4 的倍数，且不是 100 的倍数的，为闰年（如 2004年、2020年 等就是闰年）。</p><p>世纪闰年：公历年份是整百数的，必须是 400 的倍数才是闰年（如 1900年 不是闰年，2000年 是闰年）。</p><p>闰年一年 366 天，二月有 28 天</p></blockquote><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">2000</span>; i &lt;= <span class="number">2020</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> ((i % <span class="number">4</span> == <span class="number">0</span> &amp;&amp; i % <span class="number">100</span> != <span class="number">0</span>) || i % <span class="number">400</span> == <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d\t&quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="最大公约数"><a href="#最大公约数" class="headerlink" title="最大公约数"></a>最大公约数</h2><p>最大公约数：两个或多个整数 共有 约数 中最大的一个</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br></pre></td><td class="code"><pre><span class="line">暴力法：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">12</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">16</span>;</span><br><span class="line">    <span class="type">int</span> i;</span><br><span class="line">    <span class="keyword">if</span> (a &gt; b)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="type">int</span> tmp = a;</span><br><span class="line">        a = b;</span><br><span class="line">        b = tmp;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">for</span> (i = a; i &gt; <span class="number">0</span>; i--)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (a % i == <span class="number">0</span> &amp;&amp; b % i == <span class="number">0</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d 和 %d 最大公约数是 %d&quot;</span>, a, b, i);</span><br><span class="line">            <span class="keyword">break</span>;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">辗转相除法：</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">12</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">16</span>;</span><br><span class="line">    <span class="type">int</span> c;</span><br><span class="line">    <span class="keyword">while</span> (c = a % b)</span><br><span class="line">    &#123;</span><br><span class="line">        a = b;</span><br><span class="line">        b = c;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, b);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">辗转相减法：【大数减小数，直至相等】</span><br><span class="line"><span class="comment">// 16 - 12 = 4</span></span><br><span class="line"><span class="comment">// 12 - 4 = 8</span></span><br><span class="line"><span class="comment">// 8 - 4 = 4</span></span><br><span class="line"><span class="comment">// 4 - 4 = 0</span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">12</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">16</span>;</span><br><span class="line">    <span class="type">int</span> c = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">while</span> (a != b)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (a &lt; b)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="type">int</span> temp = a;</span><br><span class="line">            a = b;</span><br><span class="line">            b = temp;</span><br><span class="line">        &#125;</span><br><span class="line">        c = a - b;</span><br><span class="line">        a = b;</span><br><span class="line">        b = c;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, a);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="最小公倍数"><a href="#最小公倍数" class="headerlink" title="最小公倍数"></a>最小公倍数</h2><p>最小公倍数：两个或多个整数公有的倍数叫做它们的公倍数，其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 最小公倍数 = 两数乘积 / 最大公因数</span></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">12</span>;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">16</span>;</span><br><span class="line">    <span class="type">int</span> c;</span><br><span class="line">    <span class="type">int</span> res = a * b;</span><br><span class="line">    <span class="keyword">while</span> (c = a % b)</span><br><span class="line">    &#123;</span><br><span class="line">        a = b;</span><br><span class="line">        b = c;</span><br><span class="line">    &#125;</span><br><span class="line">    res = res / b;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, res);</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="求数字"><a href="#求数字" class="headerlink" title="求数字"></a>求数字</h2><ul><li>求数字：一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?</li></ul><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> x, y;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; <span class="number">1000</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        x = <span class="built_in">sqrt</span>(i + <span class="number">100</span>);</span><br><span class="line">        y = <span class="built_in">sqrt</span>(i + <span class="number">168</span>);</span><br><span class="line">        <span class="keyword">if</span> (x * x == (i + <span class="number">100</span>) &amp;&amp; y * y == (i + <span class="number">168</span>))</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, i);</span><br><span class="line">            <span class="keyword">break</span>;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><ul><li>求数字：求所有的四位数中,原数的 9 倍与其逆序相等的数。</li></ul><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> g, s, b, q;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">1000</span>; i &lt;= <span class="number">9999</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        g = i % <span class="number">10</span>;</span><br><span class="line">        s = i / <span class="number">10</span> % <span class="number">10</span>;</span><br><span class="line">        b = i / <span class="number">100</span> % <span class="number">10</span>;</span><br><span class="line">        q = i / <span class="number">1000</span>;</span><br><span class="line">        <span class="keyword">if</span> (i * <span class="number">9</span> == (g * <span class="number">1000</span> + s * <span class="number">100</span> + b * <span class="number">10</span> + q))</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><ul><li>求数字：求 1(含 1)-200(含 200)中,能同时被 2、5 除余 1 的整数。</li></ul><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">1</span>; i &lt;= <span class="number">200</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (i % <span class="number">2</span> == <span class="number">1</span> &amp;&amp; i % <span class="number">5</span> == <span class="number">1</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, i);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="求位数"><a href="#求位数" class="headerlink" title="求位数"></a>求位数</h2><p>求位数：输入一个正整数,输出它是几位数?</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">999</span>;</span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; a; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        a = a / <span class="number">10</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, i);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="翻转数字"><a href="#翻转数字" class="headerlink" title="翻转数字"></a>翻转数字</h2><p>翻转数字</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">123</span>;</span><br><span class="line">    <span class="type">int</span> res = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">while</span> (a)</span><br><span class="line">    &#123;</span><br><span class="line">        res = res * <span class="number">10</span> + a % <span class="number">10</span>;</span><br><span class="line">        a = a / <span class="number">10</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, res);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;奇数&quot;&gt;&lt;a href=&quot;#奇数&quot; class=&quot;headerlink&quot; title=&quot;奇数&quot;&gt;&lt;/a&gt;奇数&lt;/h2&gt;&lt;p&gt;奇数：输出 1-1000 之间所有的奇数。&lt;/p&gt;
&lt;figure class=&quot;highlight c&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td c</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="C语言语法" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80%E8%AF%AD%E6%B3%95/"/>
    
  </entry>
  
  <entry>
    <title>常见字符串函数</title>
    <link href="https://blog.mxne.cn/posts/17c6.html"/>
    <id>https://blog.mxne.cn/posts/17c6.html</id>
    <published>2023-08-08T06:42:01.000Z</published>
    <updated>2023-08-08T07:31:58.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="strlen"><a href="#strlen" class="headerlink" title="strlen"></a>strlen</h2><p>功能：计算字符串长度【不包含’\0’】</p><p>返回值：size_t【无符号整数】</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">size_t</span>  <span class="title function_">strlen</span><span class="params">( <span class="type">const</span> <span class="type">char</span>*  str)</span></span><br></pre></td></tr></table></figure><p>函数实现</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line">方法<span class="number">1</span>：</span><br><span class="line"><span class="type">size_t</span> <span class="title function_">my_strlen</span><span class="params">(<span class="type">const</span> <span class="type">char</span> *str)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">const</span> <span class="type">char</span> *ps = str;</span><br><span class="line">    <span class="keyword">while</span> (*ps)</span><br><span class="line">    &#123;</span><br><span class="line">        ps++;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> ps - str;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">方法<span class="number">2</span>：</span><br><span class="line"><span class="type">size_t</span> <span class="title function_">my_strlen</span><span class="params">(<span class="type">const</span> <span class="type">char</span> *str)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> count = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">while</span> (*str)</span><br><span class="line">    &#123;</span><br><span class="line">        count++;</span><br><span class="line">        str++;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> count;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> *str = <span class="string">&quot;hello&quot;</span>;</span><br><span class="line">    <span class="type">int</span> res = my_strlen(str);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;strlen = %d&quot;</span>, res);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="strcat"><a href="#strcat" class="headerlink" title="strcat"></a>strcat</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">char</span>* <span class="title function_">strcat</span><span class="params">(<span class="type">char</span>* dest,<span class="type">const</span> <span class="type">char</span>* src)</span></span><br></pre></td></tr></table></figure><p>功能：字符串拼接</p><p>返回值：返回dest字符串起始地址</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">char</span> *<span class="title function_">my_strcat</span><span class="params">(<span class="type">char</span> *dest, <span class="type">const</span> <span class="type">char</span> *src)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> *p = dest;</span><br><span class="line">    <span class="keyword">while</span> (*dest != <span class="string">&#x27;\0&#x27;</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        dest++;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">while</span> (*dest = *src)</span><br><span class="line">    &#123;</span><br><span class="line">        dest++;</span><br><span class="line">        src++;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> p;</span><br><span class="line">&#125;</span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> str1[<span class="number">20</span>] = <span class="string">&quot;hello&quot;</span>;</span><br><span class="line">    <span class="type">char</span> str2[<span class="number">20</span>] = <span class="string">&quot; world&quot;</span>;</span><br><span class="line">    <span class="comment">// 注意：str1只能为字符数组，不可以为字符指针，因为字符指针不可改变字符串中的内容【hello在数据区】，支付指针可改变指向地址</span></span><br><span class="line">    my_strcat(str1, str2);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%s&quot;</span>, str1);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="strcpy"><a href="#strcpy" class="headerlink" title="strcpy"></a>strcpy</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">char</span>* <span class="title function_">strcpy</span><span class="params">(<span class="type">char</span>* dest,<span class="type">char</span>* src)</span></span><br></pre></td></tr></table></figure><p>功能：将参数src字符串拷贝至参数dest所指的地址</p><p>返回值：返回参数dest的字符串起始地址</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line">方法<span class="number">1</span>：</span><br><span class="line"><span class="type">char</span>* <span class="title function_">my_strcpy</span><span class="params">(<span class="type">char</span>* dest, <span class="type">char</span>* src)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span>* p = dest;</span><br><span class="line">    <span class="keyword">while</span> ((*dest = *src)!=<span class="string">&#x27;\0&#x27;</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        dest++;</span><br><span class="line">        src++;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> p;</span><br><span class="line"></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">方法<span class="number">2</span>：</span><br><span class="line"><span class="type">char</span>* <span class="title function_">my_strcpy</span><span class="params">(<span class="type">char</span>* dest, <span class="type">char</span>* src)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span>* p = dest;</span><br><span class="line">    <span class="keyword">while</span> (*dest++ = *src++)</span><br><span class="line">        ;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> p;</span><br><span class="line"></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> str1[<span class="number">20</span>] = <span class="string">&quot;hello&quot;</span>;</span><br><span class="line">    <span class="type">char</span> str2[<span class="number">20</span>] = <span class="string">&quot;world&quot;</span>;</span><br><span class="line">    my_strcpy(str1, str2);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%s&quot;</span>, str1);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="strcmp"><a href="#strcmp" class="headerlink" title="strcmp"></a>strcmp</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">strcmp</span> <span class="params">(<span class="type">const</span> <span class="type">char</span>* str1,<span class="type">const</span> <span class="type">char</span>* str2)</span></span><br></pre></td></tr></table></figure><p>功能：字符串比较</p><p>返回值：若参数s1和s2字符串相同则返回0，s1若大于s2则返回大于0的值，s1若小于s2则返回小于0的值</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">my_strcmp</span><span class="params">(<span class="type">const</span> <span class="type">char</span> *str1, <span class="type">const</span> <span class="type">char</span> *str2)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">while</span> ((*str1 != <span class="string">&#x27;\0&#x27;</span>) &amp;&amp; (*str1 == *str2))</span><br><span class="line">    &#123;</span><br><span class="line">        str1++;</span><br><span class="line">        str2++;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> *str1 - *str2;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> str1[<span class="number">20</span>] = <span class="string">&quot;hello&quot;</span>;</span><br><span class="line">    <span class="type">char</span> str2[<span class="number">20</span>] = <span class="string">&quot;hello&quot;</span>;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, my_strcmp(str1, str2));</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="strstr"><a href="#strstr" class="headerlink" title="strstr"></a>strstr</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">char</span>* <span class="title function_">strstr</span><span class="params">(<span class="type">const</span> <span class="type">char</span>* str,<span class="type">const</span> <span class="type">char</span>* substr)</span></span><br></pre></td></tr></table></figure><p>功能：检索子串在字符串中首次出现的位置</p><p>返回值：返回字符串str中第一次出现子串substr的地址；如果没有检索到子串，则返回NULL</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">char</span> *<span class="title function_">my_strstr</span><span class="params">(<span class="type">const</span> <span class="type">char</span> *str, <span class="type">const</span> <span class="type">char</span> *substr)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">const</span> <span class="type">char</span> *s1;</span><br><span class="line">    <span class="type">const</span> <span class="type">char</span> *s2;</span><br><span class="line">    <span class="type">const</span> <span class="type">char</span> *p = str;</span><br><span class="line">    <span class="keyword">while</span> (*p)</span><br><span class="line">    &#123;</span><br><span class="line">        s1 = p;</span><br><span class="line">        s2 = substr;</span><br><span class="line">        <span class="keyword">while</span> ((*s1 == *s2) &amp;&amp; *s2 != <span class="string">&#x27;\0&#x27;</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            s1++;</span><br><span class="line">            s2++;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span> (*s2 == <span class="string">&#x27;\0&#x27;</span>)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">return</span> (<span class="type">char</span> *)str;</span><br><span class="line">        &#125;</span><br><span class="line">        p++;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="literal">NULL</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="reverse"><a href="#reverse" class="headerlink" title="reverse"></a>reverse</h2><p>功能：字符串翻转</p><p>返回值：void</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">void</span> <span class="title function_">my_reverse</span><span class="params">(<span class="type">char</span> *str, <span class="type">int</span> len)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> temp;</span><br><span class="line">    <span class="type">int</span> start = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> end = len - <span class="number">1</span>;</span><br><span class="line">    <span class="keyword">while</span> (start &lt; end)</span><br><span class="line">    &#123;</span><br><span class="line">        temp = str[start];</span><br><span class="line">        str[start] = str[end];</span><br><span class="line">        str[end] = temp;</span><br><span class="line">        start++;</span><br><span class="line">        end--;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> str[] = <span class="string">&quot;hello&quot;</span>;</span><br><span class="line">    <span class="type">int</span> len = <span class="keyword">sizeof</span>(str) / <span class="keyword">sizeof</span>(str[<span class="number">0</span>]) - <span class="number">1</span>;</span><br><span class="line">    my_reverse(str, len);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; len; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%c&quot;</span>, str[i]);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="const-修饰指针"><a href="#const-修饰指针" class="headerlink" title="const 修饰指针"></a>const 修饰指针</h2><ul><li>const 放在 * 的左边</li></ul><p>修饰的是指针指向的内容，保证指针指向的内容不能通过指针来改变。例：<code>const int *pa = &amp;a;</code>等价于 <code>int const *pa = &amp;a;</code>【可以改变指针变量指向的地址】</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">10</span>;</span><br><span class="line">    <span class="type">const</span> <span class="type">int</span> *pa = &amp;a;</span><br><span class="line">    <span class="type">int</span> b = <span class="number">20</span>;</span><br><span class="line">    pa = &amp;b;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d\n&quot;</span>, *pa);</span><br><span class="line">    *pa = <span class="number">6</span>;   <span class="comment">// err</span></span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><ul><li>const 放在 * 的右边</li></ul><p>修饰的是指针变量本身，保证了指针变量的内容不能修改。例：<code>int *const pa = &amp;a;</code>【不可改变指针变量指向地址】</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> a = <span class="number">10</span>;</span><br><span class="line">    <span class="type">int</span> *<span class="type">const</span> pa = &amp;a;</span><br><span class="line">    *pa = <span class="number">20</span>;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%d&quot;</span>, *pa);</span><br><span class="line"></span><br><span class="line">    <span class="type">int</span> b = <span class="number">20</span>;</span><br><span class="line">    pa = &amp;b; <span class="comment">// err</span></span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;strlen&quot;&gt;&lt;a href=&quot;#strlen&quot; class=&quot;headerlink&quot; title=&quot;strlen&quot;&gt;&lt;/a&gt;strlen&lt;/h2&gt;&lt;p&gt;功能：计算字符串长度【不包含’\0’】&lt;/p&gt;
&lt;p&gt;返回值：size_t【无符号整数】&lt;/p&gt;
&lt;figu</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="C语言语法" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80%E8%AF%AD%E6%B3%95/"/>
    
  </entry>
  
  <entry>
    <title>随机数</title>
    <link href="https://blog.mxne.cn/posts/5e38.html"/>
    <id>https://blog.mxne.cn/posts/5e38.html</id>
    <published>2023-07-28T05:48:24.000Z</published>
    <updated>2023-07-28T06:43:38.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="伪随机数"><a href="#伪随机数" class="headerlink" title="伪随机数"></a>伪随机数</h2><p>需要<code>#include &lt;stdlib.h&gt;</code>，用法【无参数】：<br><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">int</span> <span class="title function_">rand</span> <span class="params">(<span class="type">void</span>)</span>;    <span class="comment">// 随机数的范围：0 ~ RAND_MAX</span></span><br></pre></td></tr></table></figure></p><blockquote><p>注意：每次开机后，使用rand()函数生成的随机数是固定的。</p></blockquote><h3 id="示例"><a href="#示例" class="headerlink" title="示例"></a>示例</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdlib.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> randomNum = rand();  <span class="comment">// rand()函数返回值为int【0 ~ RAND_MAX】</span></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;随机数：%d&quot;</span>, randomNum);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="生成真随机数"><a href="#生成真随机数" class="headerlink" title="生成真随机数"></a>生成真随机数</h2><p>需要 <code>#include &lt;stdlib.h&gt;</code> 和 <code>#include &lt;time.h&gt;</code>，用法【有参数】：<br><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="type">void</span> <span class="title function_">srand</span> <span class="params">(<span class="type">unsigned</span> <span class="type">int</span> seed)</span>;    <span class="comment">// 重新播种</span></span><br></pre></td></tr></table></figure></p><h3 id="示例-1"><a href="#示例-1" class="headerlink" title="示例"></a>示例</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdlib.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;time.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    srand((<span class="type">unsigned</span>)time(<span class="literal">NULL</span>));   <span class="comment">// 以时间作为种子</span></span><br><span class="line">    <span class="type">int</span> randomNumber = rand();</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;真随机数：%d&quot;</span>, randomNumber);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="指定范围随机数"><a href="#指定范围随机数" class="headerlink" title="指定范围随机数"></a>指定范围随机数</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdlib.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;time.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    srand((<span class="type">unsigned</span>)time(<span class="literal">NULL</span>)); <span class="comment">// 以时间作为种子</span></span><br><span class="line">    <span class="type">int</span> randomNumber = rand() % <span class="number">100</span>;      <span class="comment">// 范围：0-99</span></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;指定范围随机数：%d&quot;</span>, randomNumber);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h2 id="生成多个随机数【循环外播种一次即可】"><a href="#生成多个随机数【循环外播种一次即可】" class="headerlink" title="生成多个随机数【循环外播种一次即可】"></a>生成多个随机数【循环外播种一次即可】</h2><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdlib.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;time.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    srand((<span class="type">unsigned</span>)time(<span class="literal">NULL</span>)); <span class="comment">// 以时间作为种子</span></span><br><span class="line">    <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; <span class="number">10</span>; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="type">int</span> randomNumber = rand();</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, randomNumber);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;伪随机数&quot;&gt;&lt;a href=&quot;#伪随机数&quot; class=&quot;headerlink&quot; title=&quot;伪随机数&quot;&gt;&lt;/a&gt;伪随机数&lt;/h2&gt;&lt;p&gt;需要&lt;code&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/code&gt;，用法【无参数】：&lt;br&gt;&lt;figure c</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="C语言语法" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80%E8%AF%AD%E6%B3%95/"/>
    
  </entry>
  
  <entry>
    <title>Tag Plugins</title>
    <link href="https://blog.mxne.cn/posts/d50a.html"/>
    <id>https://blog.mxne.cn/posts/d50a.html</id>
    <published>2023-06-01T07:55:44.000Z</published>
    <updated>2023-07-21T14:36:12.000Z</updated>
    
    <content type="html"><![CDATA[<div class="note blue anzhiyufont anzhiyu-icon-bullhorn simple"><p><code>AnZhiYu主题</code>中大部分标签移植于<a href="https://akilar.top/">店长</a>的<a href="https://www.npmjs.com/package/hexo-butterfly-tag-plugins-plus">hexo-butterfly-tag-plugins-plus</a>，转载请注明来自<a href="https://blog.anheyu.com/posts/d50a.html">安知鱼</a></p></div><h2 id="按钮-btns"><a href="#按钮-btns" class="headerlink" title="按钮 btns"></a>按钮 btns</h2><div class="tabs" id="btns"><ul class="nav-tabs"><button type="button" class="tab " data-href="btns-1">标签语法</button><button type="button" class="tab " data-href="btns-2">参数配置</button><button type="button" class="tab  active" data-href="btns-3">样式预览</button><button type="button" class="tab " data-href="btns-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="btns-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">&#123;% btns 样式参数 %&#125;</span><br><span class="line">&#123;% cell 标题, 链接, 图片或者图标 %&#125;</span><br><span class="line">&#123;% cell 标题, 链接, 图片或者图标 %&#125;</span><br><span class="line">&#123;% endbtns %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="btns-2"><ol><li>圆角样式：rounded, circle</li><li>增加文字样式：可以在容器内增加 <code>&lt;b&gt;标题&lt;/b&gt;</code>和<code>&lt;p&gt;描述文字&lt;/p&gt;</code></li><li>布局方式：<br>默认为自动宽度，适合视野内只有一两个的情况。</li></ol><div class="table-container"><table><thead><tr><th style="text-align:left">参数</th><th style="text-align:left">含义</th></tr></thead><tbody><tr><td style="text-align:left">wide</td><td style="text-align:left">宽一点的按钮</td></tr><tr><td style="text-align:left">fill</td><td style="text-align:left">填充布局，自动铺满至少一行，多了会换行</td></tr><tr><td style="text-align:left">center</td><td style="text-align:left">居中，按钮之间是固定间距</td></tr><tr><td style="text-align:left">around</td><td style="text-align:left">居中分散</td></tr><tr><td style="text-align:left">grid2</td><td style="text-align:left">等宽最多 2 列，屏幕变窄会适当减少列数</td></tr><tr><td style="text-align:left">grid3</td><td style="text-align:left">等宽最多 3 列，屏幕变窄会适当减少列数</td></tr><tr><td style="text-align:left">grid4</td><td style="text-align:left">等宽最多 4 列，屏幕变窄会适当减少列数</td></tr><tr><td style="text-align:left">grid5</td><td style="text-align:left">等宽最多 5 列，屏幕变窄会适当减少列数</td></tr></tbody></table></div></div><div class="tab-item-content active" id="btns-3"><ol><li>如果需要显示类似「团队成员」之类的一组含有头像的链接：</li></ol><div class="btns circle grid5">            <a class="button no-text-decoration" href='https://xaoxuu.com' title='xaoxuu'><img src='https://bu.dusays.com/2023/06/01/64787e6a5816d.png'>xaoxuu</a><a class="button no-text-decoration" href='https://xaoxuu.com' title='xaoxuu'><img src='https://bu.dusays.com/2023/06/01/64787e6a5816d.png'>xaoxuu</a><a class="button no-text-decoration" href='https://xaoxuu.com' title='xaoxuu'><img src='https://bu.dusays.com/2023/06/01/64787e6a5816d.png'>xaoxuu</a><a class="button no-text-decoration" href='https://xaoxuu.com' title='xaoxuu'><img src='https://bu.dusays.com/2023/06/01/64787e6a5816d.png'>xaoxuu</a><a class="button no-text-decoration" href='https://xaoxuu.com' title='xaoxuu'><img src='https://bu.dusays.com/2023/06/01/64787e6a5816d.png'>xaoxuu</a>          </div><ol><li>或者含有图标的按钮：</li></ol><div class="btns rounded grid5">            <a class="button no-text-decoration" href='/' title='下载源码'><i class='anzhiyufont anzhiyu-icon-bolt'></i>下载源码</a><a class="button no-text-decoration" href='/' title='查看文档'><i class='anzhiyufont anzhiyu-icon-book'></i>查看文档</a>          </div><ol><li>圆形图标 + 标题 + 描述 + 图片 + 网格 5 列 + 居中</li></ol><div class="btns circle center grid5">            <a href='https://apps.apple.com/cn/app/heart-mate-pro-hrm-utility/id1463348922?ls=1' class="no-text-decoration"><i class='anzhiyufont anzhiyu-icon-heartbeat'></i><b>心率管家</b><p class='p red'>专业版</p><img src='https://cdn1.tianli0.top/gh/xaoxuu/cdn-assets/qrcode/heartmate_pro.png'></a><a href='https://apps.apple.com/cn/app/heart-mate-lite-hrm-utility/id1475747930?ls=1' class="no-text-decoration"><i class='anzhiyufont anzhiyu-icon-heartbeat'></i><b>心率管家</b><p class='p green'>免费版</p><img src='https://cdn1.tianli0.top/gh/xaoxuu/cdn-assets/qrcode/heartmate_lite.png'></a>          </div></div><div class="tab-item-content" id="btns-4"><ol><li>如果需要显示类似「团队成员」之类的一组含有头像的链接：</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% btns circle grid5 %&#125;</span><br><span class="line">&#123;% cell xaoxuu, https://xaoxuu.com, https://bu.dusays.com/2023/06/01/64787e6a5816d.png %&#125;</span><br><span class="line">&#123;% cell xaoxuu, https://xaoxuu.com, https://bu.dusays.com/2023/06/01/64787e6a5816d.png %&#125;</span><br><span class="line">&#123;% cell xaoxuu, https://xaoxuu.com, https://bu.dusays.com/2023/06/01/64787e6a5816d.png %&#125;</span><br><span class="line">&#123;% cell xaoxuu, https://xaoxuu.com, https://bu.dusays.com/2023/06/01/64787e6a5816d.png %&#125;</span><br><span class="line">&#123;% cell xaoxuu, https://xaoxuu.com, https://bu.dusays.com/2023/06/01/64787e6a5816d.png %&#125;</span><br><span class="line">&#123;% endbtns %&#125;</span><br></pre></td></tr></table></figure><ol><li>或者含有图标的按钮：</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">&#123;% btns rounded grid5 %&#125;</span><br><span class="line">&#123;% cell 下载源码, /, anzhiyufont anzhiyu-icon-bolt %&#125;</span><br><span class="line">&#123;% cell 查看文档, /, anzhiyufont anzhiyu-icon-book %&#125;</span><br><span class="line">&#123;% endbtns %&#125;</span><br></pre></td></tr></table></figure><ol><li>圆形图标 + 标题 + 描述 + 图片 + 网格 5 列 + 居中</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">&#123;% btns circle center grid5 %&#125;</span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&#x27;https://apps.apple.com/cn/app/heart-mate-pro-hrm-utility/id1463348922?ls=1&#x27;</span> <span class="attr">class</span>=<span class="string">&quot;no-text-decoration&quot;</span>&gt;</span></span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&#x27;anzhiyufont anzhiyu-icon-heartbeat&#x27;</span>&gt;</span></span><span class="language-xml"><span class="tag">&lt;/<span class="name">i</span>&gt;</span></span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">b</span>&gt;</span></span>心率管家<span class="language-xml"><span class="tag">&lt;/<span class="name">b</span>&gt;</span></span></span><br><span class="line">&#123;% p red, 专业版 %&#125;</span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">img</span> <span class="attr">src</span>=<span class="string">&#x27;https://bu.dusays.com/2023/06/01/64787e2a1347c.png&#x27;</span>&gt;</span></span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;/<span class="name">a</span>&gt;</span></span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">a</span> <span class="attr">href</span>=<span class="string">&#x27;https://apps.apple.com/cn/app/heart-mate-lite-hrm-utility/id1475747930?ls=1&#x27;</span> <span class="attr">class</span>=<span class="string">&quot;no-text-decoration&quot;</span>&gt;</span></span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">i</span> <span class="attr">class</span>=<span class="string">&#x27;anzhiyufont anzhiyu-icon-heartbeat&#x27;</span>&gt;</span></span><span class="language-xml"><span class="tag">&lt;/<span class="name">i</span>&gt;</span></span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">b</span>&gt;</span></span>心率管家<span class="language-xml"><span class="tag">&lt;/<span class="name">b</span>&gt;</span></span></span><br><span class="line">&#123;% p green, 免费版 %&#125;</span><br><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">img</span> <span class="attr">src</span>=<span class="string">&#x27;https://bu.dusays.com/2023/06/01/64787e515e261.png&#x27;</span>&gt;</span></span></span><br><span class="line"><span class="language-xml"><span class="tag">&lt;/<span class="name">a</span>&gt;</span></span></span><br><span class="line">&#123;% endbtns %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="按钮-btn"><a href="#按钮-btn" class="headerlink" title="按钮 btn"></a>按钮 btn</h2><div class="tabs" id="btn"><ul class="nav-tabs"><button type="button" class="tab " data-href="btn-1">标签语法</button><button type="button" class="tab " data-href="btn-2">参数配置</button><button type="button" class="tab  active" data-href="btn-3">样式预览</button><button type="button" class="tab " data-href="btn-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="btn-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">&#123;% btn [url],[text],[icon],[color] [style] [layout] [position] [size] %&#125;</span><br><span class="line"></span><br><span class="line">[url] : 链接</span><br><span class="line">[text] : 按钮文字</span><br><span class="line">[icon] : [可选] 图标</span><br><span class="line">[color] : [可选] 按钮背景顔色(默认 style 时）</span><br><span class="line">按钮字体和边框顔色(outline 时)</span><br><span class="line">default/blue/pink/red/purple/orange/green</span><br><span class="line">[style] : [可选] 按钮样式 默认实心</span><br><span class="line">outline/留空</span><br><span class="line">[layout] : [可选] 按钮佈局 默认为 line</span><br><span class="line">block/留空</span><br><span class="line">[position] : [可选] 按钮位置 前提是设置了 layout 为 block 默认为左边</span><br><span class="line">center/right/留空</span><br><span class="line">[size] : [可选] 按钮大小</span><br><span class="line">larger/留空</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="btn-2"><div class="table-container"><table><thead><tr><th style="text-align:left">参数</th><th style="text-align:left">含义</th></tr></thead><tbody><tr><td style="text-align:left">url</td><td style="text-align:left">链接</td></tr><tr><td style="text-align:left">text</td><td style="text-align:left">按钮文字</td></tr><tr><td style="text-align:left">icon</td><td style="text-align:left">[可选] 图标，如果开启了 <code>fontawesome</code>可以使用 fontawesome 的图标，否则只能使用默内置图标</td></tr><tr><td style="text-align:left">color</td><td style="text-align:left">[可选] 按钮背景顔色(默认 style 时）按钮字体和边框顔色(outline 时)default/blue/pink/red/purple/orange/green</td></tr><tr><td style="text-align:left">style</td><td style="text-align:left">[可选] 按钮样式 默认实心数，outline/留空</td></tr><tr><td style="text-align:left">layout</td><td style="text-align:left">[可选] 按钮佈局 默认为 line block/留空</td></tr><tr><td style="text-align:left">position</td><td style="text-align:left">[可选] 按钮位置 前提是设置了 layout 为 block 默认为左边 center/right/留空数</td></tr><tr><td style="text-align:left">size</td><td style="text-align:left">[可选] 按钮大小 larger/留空</td></tr></tbody></table></div></div><div class="tab-item-content active" id="btn-3"><ol><li>一组按钮</li></ol><p>This is my website, click the button <a class="btn-anzhiyu " href="https://anheyu.com/"   title="AnZhiYu"><span>AnZhiYu</span></a><br>This is my website, click the button <a class="btn-anzhiyu " href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br>This is my website, click the button <a class="btn-anzhiyu outline" href="https://anheyu.com/"   title="AnZhiYu"><span>AnZhiYu</span></a><br>This is my website, click the button <a class="btn-anzhiyu outline" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br>This is my website, click the button <a class="btn-anzhiyu larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a></p><ol><li>调整位置/大小</li></ol><p><a class="btn-anzhiyu block" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br><a class="btn-anzhiyu block center larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br><a class="btn-anzhiyu block right outline larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a></p><ol><li>more than one button in center</li></ol><p><span><br><a class="btn-anzhiyu larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span>&lt;/a&gt;<br><a class="btn-anzhiyu blue larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br><a class="btn-anzhiyu pink larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br><a class="btn-anzhiyu red larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br><a class="btn-anzhiyu purple larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br><a class="btn-anzhiyu orange larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br><a class="btn-anzhiyu green larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><br>&lt;/span&gt;</p><ol><li>居中按钮</li></ol><div class="btn-center"><a class="btn-anzhiyu outline larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><a class="btn-anzhiyu outline blue larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><a class="btn-anzhiyu outline pink larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><a class="btn-anzhiyu outline red larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><a class="btn-anzhiyu outline purple larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><a class="btn-anzhiyu outline orange larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a><a class="btn-anzhiyu outline green larger" href="https://anheyu.com/"   title="AnZhiYu"><i class="anzhiyufont anzhiyu-icon-circle-arrow-right"></i><span>AnZhiYu</span></a></div></div><div class="tab-item-content" id="btn-4"><ol><li>一组按钮</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">This is my website, click the button &#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu %&#125;</span><br><span class="line">This is my website, click the button &#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right %&#125;</span><br><span class="line">This is my website, click the button &#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,,outline %&#125;</span><br><span class="line">This is my website, click the button &#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,outline %&#125;</span><br><span class="line">This is my website, click the button &#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,larger %&#125;</span><br></pre></td></tr></table></figure><ol><li>调整位置/大小</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,block %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,block center larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,block right outline larger %&#125;</span><br></pre></td></tr></table></figure><ol><li>more than one button in center</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">span</span>&gt;</span></span></span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,blue larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,pink larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,red larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,purple larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,orange larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,green larger %&#125;</span><br><span class="line"><span class="language-xml"><span class="tag">&lt;/<span class="name">span</span>&gt;</span></span></span><br></pre></td></tr></table></figure><ol><li>居中按钮</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">div</span> <span class="attr">class</span>=<span class="string">&quot;btn-center&quot;</span>&gt;</span></span></span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,outline larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,outline blue larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,outline pink larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,outline red larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,outline purple larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,outline orange larger %&#125;</span><br><span class="line">&#123;% btn &#x27;https://anheyu.com/&#x27;,AnZhiYu,anzhiyufont anzhiyu-icon-circle-arrow-right,outline green larger %&#125;</span><br><span class="line"><span class="language-xml"><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span></span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="网站卡片-sites"><a href="#网站卡片-sites" class="headerlink" title="网站卡片 sites"></a>网站卡片 sites</h2><div class="tabs" id="site"><ul class="nav-tabs"><button type="button" class="tab " data-href="site-1">标签语法</button><button type="button" class="tab  active" data-href="site-2">样式预览</button><button type="button" class="tab " data-href="site-3">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="site-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">&#123;% sitegroup %&#125;</span><br><span class="line">&#123;% site 标题, url=链接, screenshot=截图链接, avatar=头像链接（可选）, description=描述（可选） %&#125;</span><br><span class="line">&#123;% site 标题, url=链接, screenshot=截图链接, avatar=头像链接（可选）, description=描述（可选） %&#125;</span><br><span class="line">&#123;% endsitegroup %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content active" id="site-2"><div class="site-card-group"><a class="site-card" href="https://xaoxuu.com" data-title=简约风格><div class="wrapper cover"><img class="cover fadeIn" src="https://bu.dusays.com/2023/06/01/6478965ce6557.webp"/></div><div class="info"><img class="flink-avatar" src="https://cdn1.tianli0.top/gh/xaoxuu/cdn-assets/avatar/avatar.png"/><span class="site-title">xaoxuu</span></div></a><a class="site-card" href="https://colsrch.top" data-title=这是一段关于这个网站的描述文字><div class="wrapper cover"><img class="cover fadeIn" src="https://i.loli.net/2020/08/22/dFRWXm52OVu8qfK.png"/></div><div class="info"><img class="flink-avatar" src="https://cdn1.tianli0.top/gh/Colsrch/images/Colsrch/avatar.jpg"/><span class="site-title">Colsrch</span></div></a><a class="site-card" href="https://linhk1606.github.io" data-title=这是一段关于这个网站的描述文字><div class="wrapper cover"><img class="cover fadeIn" src="https://bu.dusays.com/2023/06/01/6478963584621.png"/></div><div class="info"><img class="flink-avatar" src="https://bu.dusays.com/2023/06/01/6478968743368.png"/><span class="site-title">Linhk1606</span></div></a></div></div><div class="tab-item-content" id="site-3"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">&#123;% sitegroup %&#125;</span><br><span class="line">&#123;% site xaoxuu, url=https://xaoxuu.com, screenshot=https://bu.dusays.com/2023/06/01/6478965ce6557.webp, avatar=https://cdn1.tianli0.top/gh/xaoxuu/cdn-assets/avatar/avatar.png, description=简约风格 %&#125;</span><br><span class="line">&#123;% site Colsrch, url=https://colsrch.top, screenshot=https://i.loli.net/2020/08/22/dFRWXm52OVu8qfK.png, avatar=https://cdn1.tianli0.top/gh/Colsrch/images/Colsrch/avatar.jpg, description=这是一段关于这个网站的描述文字 %&#125;</span><br><span class="line">&#123;% site Linhk1606, url=https://linhk1606.github.io, screenshot=https://bu.dusays.com/2023/06/01/6478963584621.png, avatar=https://bu.dusays.com/2023/06/01/6478968743368.png, description=这是一段关于这个网站的描述文字 %&#125;</span><br><span class="line">&#123;% endsitegroup %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="单张图片-image"><a href="#单张图片-image" class="headerlink" title="单张图片 image"></a>单张图片 image</h2><div class="tabs" id="image"><ul class="nav-tabs"><button type="button" class="tab " data-href="image-1">标签语法</button><button type="button" class="tab " data-href="image-2">参数配置</button><button type="button" class="tab  active" data-href="image-3">样式预览</button><button type="button" class="tab " data-href="image-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="image-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% image 链接, width=宽度（可选）, height=高度（可选）, alt=描述（可选）, bg=占位颜色（可选） %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="image-2"><ol><li>图片宽度高度：width=300px, height=32px</li><li>图片描述：alt=图片描述（butterfly 需要在主题配置文件中开启图片描述）</li><li>占位背景色：bg=#f2f2f2</li></ol></div><div class="tab-item-content active" id="image-3"><ol><li>添加描述：</li></ol><div class="img-wrap"><div class="img-bg"><img class="img" src="https://bu.dusays.com/2023/06/01/6478937d7de6f.webp" alt="每天下课回宿舍的路，没有什么故事。"/></div><span class="image-caption">每天下课回宿舍的路，没有什么故事。</span></div><ol><li>指定宽度：</li></ol><div class="img-wrap"><div class="img-bg"><img class="img" src="https://bu.dusays.com/2023/06/01/6478937d7de6f.webp" style="width:400px;"/></div></div><ol><li>指定宽度并添加描述：</li></ol><div class="img-wrap"><div class="img-bg"><img class="img" src="https://bu.dusays.com/2023/06/01/6478937d7de6f.webp" alt="每天下课回宿舍的路，没有什么故事。" style="width:400px;"/></div><span class="image-caption">每天下课回宿舍的路，没有什么故事。</span></div><ol><li>设置占位背景色：</li></ol><div class="img-wrap"><div class="img-bg" style="background:#1D0C04"><img class="img" src="https://bu.dusays.com/2023/06/01/6478937d7de6f.webp" alt="优化不同宽度浏览的观感" style="width:400px;"/></div><span class="image-caption">优化不同宽度浏览的观感</span></div></div><div class="tab-item-content" id="image-4"><ol><li>添加描述：</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% image https://bu.dusays.com/2023/06/01/6478937d7de6f.webp, alt=每天下课回宿舍的路，没有什么故事。 %&#125;</span><br></pre></td></tr></table></figure><ol><li>指定宽度：</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% image https://bu.dusays.com/2023/06/01/6478937d7de6f.webp, width=400px %&#125;</span><br></pre></td></tr></table></figure><ol><li>指定宽度并添加描述：</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% image https://bu.dusays.com/2023/06/01/6478937d7de6f.webp, width=400px, alt=每天下课回宿舍的路，没有什么故事。 %&#125;</span><br></pre></td></tr></table></figure><ol><li>设置占位背景色：</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% image https://bu.dusays.com/2023/06/01/6478937d7de6f.webp, width=400px, bg=#1D0C04, alt=优化不同宽度浏览的观感 %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="inlineImg-行内图片"><a href="#inlineImg-行内图片" class="headerlink" title="inlineImg 行内图片"></a>inlineImg 行内图片</h2><div class="tabs" id="inlineimg"><ul class="nav-tabs"><button type="button" class="tab " data-href="inlineimg-1">标签语法</button><button type="button" class="tab " data-href="inlineimg-2">参数配置</button><button type="button" class="tab  active" data-href="inlineimg-3">样式预览</button><button type="button" class="tab " data-href="inlineimg-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="inlineimg-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">&#123;% inlineImg [src] [height] %&#125;</span><br><span class="line"></span><br><span class="line">[src] : 图片链接</span><br><span class="line">[height] ： 图片高度限制【可选】</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="inlineimg-2"><div class="table-container"><table><thead><tr><th style="text-align:left">参数</th><th style="text-align:left">含义</th></tr></thead><tbody><tr><td style="text-align:left">src</td><td style="text-align:left">图片链接</td></tr><tr><td style="text-align:left">height</td><td style="text-align:left">图片高度限制【可选】</td></tr></tbody></table></div></div><div class="tab-item-content active" id="inlineimg-3"><p>你看我长得漂亮不</p><p><img src="https://bu.dusays.com/2023/06/01/64787ded2ca1c.webp" alt=""></p><p>我觉得很漂亮 <img class="inline-img" src="https://bu.dusays.com/2023/06/01/64787da5251b3.png" style="height:150px"/></p></div><div class="tab-item-content" id="inlineimg-4"><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">你看我长得漂亮不</span><br><span class="line"></span><br><span class="line">![](https://i.loli.net/2021/03/19/2P6ivUGsdaEXSFI.png)</span><br><span class="line"></span><br><span class="line">我觉得很漂亮 &#123;% inlineImg https://i.loli.net/2021/03/19/5M4jUB3ynq7ePgw.png 150px %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="行内图片-inlineimage"><a href="#行内图片-inlineimage" class="headerlink" title="行内图片 inlineimage"></a>行内图片 inlineimage</h2><div class="tabs" id="inlineimage"><ul class="nav-tabs"><button type="button" class="tab " data-href="inlineimage-1">标签语法</button><button type="button" class="tab " data-href="inlineimage-2">参数配置</button><button type="button" class="tab  active" data-href="inlineimage-3">样式预览</button><button type="button" class="tab " data-href="inlineimage-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="inlineimage-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% inlineimage 图片链接, height=高度（可选） %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="inlineimage-2"><ol><li>高度：height=20px</li></ol></div><div class="tab-item-content active" id="inlineimage-3"><p>这是 <img no-lazy class="inline" src="https://bu.dusays.com/2023/06/01/647895232e5d5.webp" style="height:1.5em"/> 一段话。</p><p>这又是 <img no-lazy class="inline" src="https://bu.dusays.com/2022/05/19/6285328a83ca7.gif" style="height:40px;"/> 一段话。</p></div><div class="tab-item-content" id="inlineimage-4"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">这是 &#123;% inlineimage https://bu.dusays.com/2023/06/01/647895232e5d5.webp %&#125; 一段话。</span><br><span class="line"></span><br><span class="line">这又是 &#123;% inlineimage https://bu.dusays.com/2022/05/19/6285328a83ca7.gif, height=40px %&#125; 一段话。</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="label-标签"><a href="#label-标签" class="headerlink" title="label 标签"></a>label 标签</h2><div class="tabs" id="label"><ul class="nav-tabs"><button type="button" class="tab " data-href="label-1">标签语法</button><button type="button" class="tab " data-href="label-2">参数配置</button><button type="button" class="tab  active" data-href="label-3">样式预览</button><button type="button" class="tab " data-href="label-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="label-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% label text color %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="label-2"><div class="table-container"><table><thead><tr><th style="text-align:left">参数</th><th style="text-align:left">含义</th></tr></thead><tbody><tr><td style="text-align:left">text</td><td style="text-align:left">文字</td></tr><tr><td style="text-align:left">color</td><td style="text-align:left">【可选】背景颜色，默认为 default，default/blue/pink/red/purple/orange/green</td></tr></tbody></table></div></div><div class="tab-item-content active" id="label-3"><p>臣亮言：<mark class="hl-label default">先帝</mark> 创业未半，而<mark class="hl-label blue">中道崩殂</mark> 。今天下三分，<mark class="hl-label pink">益州疲敝</mark> ，此诚<mark class="hl-label red">危急存亡之秋</mark> 也！然侍衞之臣，不懈于内；<mark class="hl-label purple">忠志之士</mark> ，忘身于外者，盖追先帝之殊遇，欲报之于陛下也。诚宜开张圣听，以光先帝遗德，恢弘志士之气；不宜妄自菲薄，引喻失义，以塞忠谏之路也。<br>宫中、府中，俱为一体；陟罚臧否，不宜异同。若有<mark class="hl-label orange">作奸</mark> 、<mark class="hl-label green">犯科</mark> ，及为忠善者，宜付有司，论其刑赏，以昭陛下平明之治；不宜偏私，使内外异法也。</p></div><div class="tab-item-content" id="label-4"><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">臣亮言：&#123;% label 先帝 %&#125;创业未半，而&#123;% label 中道崩殂 blue %&#125;。今天下三分，&#123;% label 益州疲敝 pink %&#125;，此诚&#123;% label 危急存亡之秋 red %&#125;也！然侍衞之臣，不懈于内；&#123;% label 忠志之士 purple %&#125;，忘身于外者，盖追先帝之殊遇，欲报之于陛下也。诚宜开张圣听，以光先帝遗德，恢弘志士之气；不宜妄自菲薄，引喻失义，以塞忠谏之路也。</span><br><span class="line">宫中、府中，俱为一体；陟罚臧否，不宜异同。若有&#123;% label 作奸 orange %&#125;、&#123;% label 犯科 green %&#125;，及为忠善者，宜付有司，论其刑赏，以昭陛下平明之治；不宜偏私，使内外异法也。</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="timeline"><a href="#timeline" class="headerlink" title="timeline"></a>timeline</h2><div class="tabs" id="timeline"><ul class="nav-tabs"><button type="button" class="tab " data-href="timeline-1">标签语法</button><button type="button" class="tab " data-href="timeline-2">参数配置</button><button type="button" class="tab  active" data-href="timeline-3">样式预览</button><button type="button" class="tab " data-href="timeline-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="timeline-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">&#123;% timeline title,color %&#125;</span><br><span class="line"></span><br><span class="line">&lt;!-- timeline title --&gt;</span><br><span class="line"></span><br><span class="line">xxxxx</span><br><span class="line"></span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line">&lt;!-- timeline title --&gt;</span><br><span class="line"></span><br><span class="line">xxxxx</span><br><span class="line"></span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line"></span><br><span class="line">&#123;% endtimeline %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="timeline-2"><div class="table-container"><table><thead><tr><th style="text-align:left">参数</th><th style="text-align:left">含义</th></tr></thead><tbody><tr><td style="text-align:left">title</td><td style="text-align:left">标题/时间线</td></tr><tr><td style="text-align:left">color</td><td style="text-align:left">timeline 颜色，default(留空) / blue / pink / red / purple / orange / green</td></tr></tbody></table></div></div><div class="tab-item-content active" id="timeline-3"><ol><li><p>默认颜色</p><div class="timeline undefined"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div></li><li><p>blue</p><div class="timeline blue"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div></li><li><p>pink</p><div class="timeline pink"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div></li><li><p>red</p><div class="timeline red"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div></li><li><p>purple</p><div class="timeline purple"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div></li><li><p>orange</p><div class="timeline orange"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div></li><li><p>green</p><div class="timeline green"><div class='timeline-item headline'><div class='timeline-item-title'><div class='item-circle'><p>2022</p></div></div></div><div class='timeline-item'><div class='timeline-item-title'><div class='item-circle'><p>01-02</p></div></div><div class='timeline-item-content'><p>这是测试页面</p></div></div></div></li></ol></div><div class="tab-item-content" id="timeline-4"><ol><li>默认颜色</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% timeline 2022 %&#125;</span><br><span class="line">&lt;!-- timeline 01-02 --&gt;</span><br><span class="line"></span><br><span class="line">这是测试页面</span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line"></span><br><span class="line">&#123;% endtimeline %&#125;</span><br></pre></td></tr></table></figure><ol><li>blue</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% timeline 2022,blue %&#125;</span><br><span class="line">&lt;!-- timeline 01-02 --&gt;</span><br><span class="line"></span><br><span class="line">这是测试页面</span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line"></span><br><span class="line">&#123;% endtimeline %&#125;</span><br></pre></td></tr></table></figure><ol><li>pink</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% timeline 2022,pink %&#125;</span><br><span class="line">&lt;!-- timeline 01-02 --&gt;</span><br><span class="line"></span><br><span class="line">这是测试页面</span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line"></span><br><span class="line">&#123;% endtimeline %&#125;</span><br></pre></td></tr></table></figure><ol><li>red</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% timeline 2022,red %&#125;</span><br><span class="line">&lt;!-- timeline 01-02 --&gt;</span><br><span class="line"></span><br><span class="line">这是测试页面</span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line"></span><br><span class="line">&#123;% endtimeline %&#125;</span><br></pre></td></tr></table></figure><ol><li>purple</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% timeline 2022,purple %&#125;</span><br><span class="line">&lt;!-- timeline 01-02 --&gt;</span><br><span class="line"></span><br><span class="line">这是测试页面</span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line"></span><br><span class="line">&#123;% endtimeline %&#125;</span><br></pre></td></tr></table></figure><ol><li>orange</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% timeline 2022,orange %&#125;</span><br><span class="line">&lt;!-- timeline 01-02 --&gt;</span><br><span class="line"></span><br><span class="line">这是测试页面</span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line"></span><br><span class="line">&#123;% endtimeline %&#125;</span><br></pre></td></tr></table></figure><ol><li>green</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% timeline 2022,green %&#125;</span><br><span class="line">&lt;!-- timeline 01-02 --&gt;</span><br><span class="line"></span><br><span class="line">这是测试页面</span><br><span class="line">&lt;!-- endtimeline --&gt;</span><br><span class="line"></span><br><span class="line">&#123;% endtimeline %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="flink-友链标签"><a href="#flink-友链标签" class="headerlink" title="flink 友链标签"></a>flink 友链标签</h2><div class="note blue anzhiyufont anzhiyu-icon-bullhorn simple"><p>可在任何界面插入类似<code>友情链接</code>列表效果，内容格式与友情链接界面一样，支持 <code>yml 格式</code>,注意<code>yml数据</code>具有格式要求，请注意格式对齐，防止被编辑器格式化导致格式错误从而报错。</p></div><div class="tabs" id="btn"><ul class="nav-tabs"><button type="button" class="tab " data-href="btn-1">标签语法</button><button type="button" class="tab " data-href="btn-2">参数配置</button><button type="button" class="tab  active" data-href="btn-3">样式预览</button><button type="button" class="tab " data-href="btn-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="btn-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% flink %&#125;</span><br><span class="line">xxxxxx</span><br><span class="line">&#123;% endflink %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="btn-2"><div class="table-container"><table><thead><tr><th style="text-align:left">参数</th><th style="text-align:left">含义</th></tr></thead><tbody><tr><td style="text-align:left">class_name</td><td style="text-align:left">h2标题</td></tr><tr><td style="text-align:left">flink_style</td><td style="text-align:left">【可选】友链样式，默认为 flexcard，flexcard/anzhiyu</td></tr><tr><td style="text-align:left">link_list</td><td style="text-align:left">【可选】友链样式，默认为 flexcard，flexcard/anzhiyu</td></tr></tbody></table></div></div><div class="tab-item-content active" id="btn-3"><div class="flink"><div class="flink-name">推荐博客</div> <div class="flink-list"><div class="flexcard-flink-list">              <a href="https://anheyu.com/" title="安知鱼" target="_blank" class="flink-list-card cf-friends-link">                <div class="wrapper cover">                    <img class="no-lightbox cover fadeIn" src="https://npm.elemecdn.com/anzhiyu-blog@1.1.6/img/post/common/anheyu.com.jpg" onerror='this.onerror=null;this.src="/img/friend_404.gif"' alt="安知鱼" />                </div>                <div class="info">                  <img class="no-lightbox cf-friends-avatar flink-avatar" src="https://img02.anheyu.com/adminuploads/1/2022/09/15/63232b7d91d22.jpg" onerror='this.onerror=null;this.src="/img/friend_404.gif"' alt="安知鱼"/>                  <span class="flink-sitename cf-friends-name">安知鱼</span>                </div>              </a></div></div><div class="flink-name">网站</div><div class="flink-desc">值得推荐的网站</div> <div class="flink-list"><div class="anzhiyu-flink-list">            <div class="flink-list-item">              <a href="https://www.youtube.com/" title="Youtube" class="cf-friends-link" target="_blank">                <div class="flink-item-icon">                  <img class="no-lightbox cf-friends-avatar" src="https://i.loli.net/2020/05/14/9ZkGg8v3azHJfM1.png" onerror='this.onerror=null;this.src="/img/friend_404.gif"' alt="Youtube" />                </div>                <div class="flink-item-info">                  <div class="flink-item-name">Youtube</div>                  <div class="flink-item-desc" title="视频网站">视频网站</div>                </div>              </a>            </div>            <div class="flink-list-item">              <a href="https://www.weibo.com/" title="Weibo" class="cf-friends-link" target="_blank">                <div class="flink-item-icon">                  <img class="no-lightbox cf-friends-avatar" src="https://i.loli.net/2020/05/14/TLJBum386vcnI1P.png" onerror='this.onerror=null;this.src="/img/friend_404.gif"' alt="Weibo" />                </div>                <div class="flink-item-info">                  <div class="flink-item-name">Weibo</div>                  <div class="flink-item-desc" title="中国最大社交分享平台">中国最大社交分享平台</div>                </div>              </a>            </div>            <div class="flink-list-item">              <a href="https://twitter.com/" title="Twitter" class="cf-friends-link" target="_blank">                <div class="flink-item-icon">                  <img class="no-lightbox cf-friends-avatar" src="https://i.loli.net/2020/05/14/5VyHPQqR6LWF39a.png" onerror='this.onerror=null;this.src="/img/friend_404.gif"' alt="Twitter" />                </div>                <div class="flink-item-info">                  <div class="flink-item-name">Twitter</div>                  <div class="flink-item-desc" title="社交分享平台">社交分享平台</div>                </div>              </a>            </div></div></div></div></div><div class="tab-item-content" id="btn-4"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">&#123;% flink %&#125;</span><br><span class="line"><span class="bullet">-</span> class<span class="emphasis">_name: 推荐博客</span></span><br><span class="line"><span class="emphasis">  flink_</span>style: flexcard</span><br><span class="line">  link<span class="emphasis">_list:</span></span><br><span class="line"><span class="emphasis">    - name: 安知鱼</span></span><br><span class="line"><span class="emphasis">      link: https://anheyu.com/</span></span><br><span class="line"><span class="emphasis">      avatar: https://img02.anheyu.com/adminuploads/1/2022/09/15/63232b7d91d22.jpg</span></span><br><span class="line"><span class="emphasis">      descr: 生活明朗，万物可爱</span></span><br><span class="line"><span class="emphasis">      siteshot: https://npm.elemecdn.com/anzhiyu-blog@1.1.6/img/post/common/anheyu.com.jpg</span></span><br><span class="line"><span class="emphasis"></span></span><br><span class="line"><span class="emphasis">- class_</span>name: 网站</span><br><span class="line">  class<span class="emphasis">_desc: 值得推荐的网站</span></span><br><span class="line"><span class="emphasis">  flink_</span>style: anzhiyu</span><br><span class="line">  link<span class="emphasis">_list:</span></span><br><span class="line"><span class="emphasis">    - name: Youtube</span></span><br><span class="line"><span class="emphasis">      link: https://www.youtube.com/</span></span><br><span class="line"><span class="emphasis">      avatar: https://i.loli.net/2020/05/14/9ZkGg8v3azHJfM1.png</span></span><br><span class="line"><span class="emphasis">      descr: 视频网站</span></span><br><span class="line"><span class="emphasis">    - name: Weibo</span></span><br><span class="line"><span class="emphasis">      link: https://www.weibo.com/</span></span><br><span class="line"><span class="emphasis">      avatar: https://i.loli.net/2020/05/14/TLJBum386vcnI1P.png</span></span><br><span class="line"><span class="emphasis">      descr: 中国最大社交分享平台</span></span><br><span class="line"><span class="emphasis">    - name: Twitter</span></span><br><span class="line"><span class="emphasis">      link: https://twitter.com/</span></span><br><span class="line"><span class="emphasis">      avatar: https://i.loli.net/2020/05/14/5VyHPQqR6LWF39a.png</span></span><br><span class="line"><span class="emphasis">      descr: 社交分享平台</span></span><br><span class="line"><span class="emphasis">&#123;% endflink %&#125;</span></span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="mermaid-图"><a href="#mermaid-图" class="headerlink" title="mermaid 图"></a>mermaid 图</h2><div class="note blue anzhiyufont anzhiyu-icon-bullhorn simple"><p>使用<code>mermaid标签</code>可以绘制Flowchart（流程图）、Sequence diagram（时序图 ）、Class Diagram（类别图）、State Diagram（状态图）、Gantt（甘特图）和Pie Chart（圆形图），具体可以查看<a href="https://mermaid.js.org/#/">mermaid文档</a></p></div><p>修改 <code>主题配置文件</code></p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># mermaid</span></span><br><span class="line"><span class="comment"># see https://github.com/mermaid-js/mermaid</span></span><br><span class="line"><span class="attr">mermaid:</span></span><br><span class="line">  <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line">  <span class="comment"># built-in themes: default/forest/dark/neutral</span></span><br><span class="line">  <span class="attr">theme:</span></span><br><span class="line">    <span class="attr">light:</span> <span class="string">default</span></span><br><span class="line">    <span class="attr">dark:</span> <span class="string">dark</span></span><br></pre></td></tr></table></figure><div class="tabs" id="mermaid"><ul class="nav-tabs"><button type="button" class="tab " data-href="mermaid-1">标签语法</button><button type="button" class="tab  active" data-href="mermaid-2">样式预览</button><button type="button" class="tab " data-href="mermaid-3">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="mermaid-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% mermaid %&#125;</span><br><span class="line">内容</span><br><span class="line">&#123;% endmermaid %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content active" id="mermaid-2"><p><img src="https://bu.dusays.com/2023/06/01/647889d3a16f8.png" alt="mermaid"></p></div><div class="tab-item-content" id="mermaid-3"><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">&#123;% mermaid %&#125;</span><br><span class="line">pie</span><br><span class="line">    title Key elements in Product X</span><br><span class="line">    &quot;Calcium&quot; : 42.96</span><br><span class="line">    &quot;Potassium&quot; : 50.05</span><br><span class="line">    &quot;Magnesium&quot; : 10.01</span><br><span class="line">    &quot;Iron&quot; :  5</span><br><span class="line">&#123;% endmermaid %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="复选列表-checkbox"><a href="#复选列表-checkbox" class="headerlink" title="复选列表 checkbox"></a>复选列表 checkbox</h2><div class="tabs" id="checkbox"><ul class="nav-tabs"><button type="button" class="tab " data-href="checkbox-1">标签语法</button><button type="button" class="tab " data-href="checkbox-2">配置参数</button><button type="button" class="tab  active" data-href="checkbox-3">样式预览</button><button type="button" class="tab " data-href="checkbox-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="checkbox-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% checkbox 样式参数（可选）, 文本（支持简单md） %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="checkbox-2"><ol><li>样式: plus, minus, times</li><li>颜色: <span class='p red'>red</span>,<span class='p yellow'>yellow</span>,<span class='p green'>green</span>,<span class='p cyan'>cyan</span>,<span class='p blue'>blue</span>,<span class='p gray'>gray</span></li><li>选中状态: checked</li></ol></div><div class="tab-item-content active" id="checkbox-3"><div class='checkbox'><input type="checkbox" />            <p>纯文本测试</p>            </div>   <div class='checkbox checked'><input type="checkbox" checked="checked"/>            <p>支持简单的 <a href="https://guides.github.com/features/mastering-markdown/">markdown</a> 语法</p>            </div>   <div class='checkbox red'><input type="checkbox" />            <p>支持自定义颜色</p>            </div>   <div class='checkbox green checked'><input type="checkbox" checked="checked"/>            <p>绿色 + 默认选中</p>            </div>   <div class='checkbox yellow checked'><input type="checkbox" checked="checked"/>            <p>黄色 + 默认选中</p>            </div>   <div class='checkbox cyan checked'><input type="checkbox" checked="checked"/>            <p>青色 + 默认选中</p>            </div>   <div class='checkbox blue checked'><input type="checkbox" checked="checked"/>            <p>蓝色 + 默认选中</p>            </div>   <div class='checkbox plus green checked'><input type="checkbox" checked="checked"/>            <p>增加</p>            </div>   <div class='checkbox minus yellow checked'><input type="checkbox" checked="checked"/>            <p>减少</p>            </div>   <div class='checkbox times red checked'><input type="checkbox" checked="checked"/>            <p>叉</p>            </div></div><div class="tab-item-content" id="checkbox-4"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">&#123;% checkbox 纯文本测试 %&#125;</span><br><span class="line">&#123;% checkbox checked, 支持简单的 [<span class="string">markdown</span>](<span class="link">https://guides.github.com/features/mastering-markdown/</span>) 语法 %&#125;</span><br><span class="line">&#123;% checkbox red, 支持自定义颜色 %&#125;</span><br><span class="line">&#123;% checkbox green checked, 绿色 + 默认选中 %&#125;</span><br><span class="line">&#123;% checkbox yellow checked, 黄色 + 默认选中 %&#125;</span><br><span class="line">&#123;% checkbox cyan checked, 青色 + 默认选中 %&#125;</span><br><span class="line">&#123;% checkbox blue checked, 蓝色 + 默认选中 %&#125;</span><br><span class="line">&#123;% checkbox plus green checked, 增加 %&#125;</span><br><span class="line">&#123;% checkbox minus yellow checked, 减少 %&#125;</span><br><span class="line">&#123;% checkbox times red checked, 叉 %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="dogeplayer-多吉云播放器"><a href="#dogeplayer-多吉云播放器" class="headerlink" title="dogeplayer 多吉云播放器"></a>dogeplayer 多吉云播放器</h2><div class="note blue anzhiyufont anzhiyu-icon-bullhorn simple"><p>快捷引入<a href="https://console.dogecloud.com/vod/overview">多吉云视频</a></p></div><div class="tabs" id="label"><ul class="nav-tabs"><button type="button" class="tab " data-href="label-1">标签语法</button><button type="button" class="tab " data-href="label-2">参数配置</button><button type="button" class="tab  active" data-href="label-3">样式预览</button><button type="button" class="tab " data-href="label-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="label-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% dogeplayer 4945 ebb742fd1f0b5a7b %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="label-2"><p>获取<code>userId</code>与<code>vcode</code></p><p><img src="https://bu.dusays.com/2023/06/01/64788b5bad729.webp" alt=""></p><div class="table-container"><table><thead><tr><th style="text-align:left">参数</th><th style="text-align:left">含义</th></tr></thead><tbody><tr><td style="text-align:left">userId</td><td style="text-align:left">多吉云userId</td></tr><tr><td style="text-align:left">vcode</td><td style="text-align:left">视频vcode</td></tr></tbody></table></div></div><div class="tab-item-content active" id="label-3"><p><img src="https://bu.dusays.com/2023/06/01/64788c12883b8.webp" alt=""></p></div><div class="tab-item-content" id="label-4"><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% dogeplayer 4945 ebb742fd1f0b5a7b %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="折叠框-folding"><a href="#折叠框-folding" class="headerlink" title="折叠框 folding"></a>折叠框 folding</h2><div class="note blue anzhiyufont anzhiyu-icon-bullhorn disabled"><p>折叠框folding</p></div><div class="tabs" id="folding"><ul class="nav-tabs"><button type="button" class="tab " data-href="folding-1">标签语法</button><button type="button" class="tab " data-href="folding-2">配置参数</button><button type="button" class="tab  active" data-href="folding-3">样式预览</button><button type="button" class="tab " data-href="folding-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="folding-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% folding 参数（可选）, 标题 %&#125;</span><br><span class="line">![](<span class="link">https://bu.dusays.com/2023/06/01/64788d71c832d.webp</span>)</span><br><span class="line">&#123;% endfolding %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="folding-2"><ol><li>颜色：blue, cyan, green, yellow, red</li><li>状态：状态填写 open 代表默认打开。</li></ol></div><div class="tab-item-content active" id="folding-3"><details class="folding-tag" ><summary> 查看图片测试 </summary>              <div class='content'>              <p><img src="https://bu.dusays.com/2023/06/01/64788d71c832d.webp" alt=""></p>              </div>            </details><details class="folding-tag" cyan open><summary> 查看默认打开的折叠框 </summary>              <div class='content'>              <p>这是一个默认打开的折叠框。</p>              </div>            </details><details class="folding-tag" green><summary> 查看代码测试 </summary>              <div class='content'>              <figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">![](<span class="link">https://bu.dusays.com/2023/06/01/64788d71c832d.webp</span>)</span><br></pre></td></tr></table></figure>              </div>            </details><details class="folding-tag" yellow><summary> 查看列表测试 </summary>              <div class='content'>              <ul><li>haha</li><li>hehe</li></ul>              </div>            </details><details class="folding-tag" red><summary> 查看嵌套测试 </summary>              <div class='content'>              <details class="folding-tag" blue><summary> 查看嵌套测试2 </summary>              <div class='content'>              <details class="folding-tag" ><summary> 查看嵌套测试3 </summary>              <div class='content'>              <p>hahaha <span><img src='https://bu.dusays.com/2023/06/01/64788cd5a356b.png' style='height:24px'></span></p>              </div>            </details>              </div>            </details>              </div>            </details></div><div class="tab-item-content" id="folding-4"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre></td><td class="code"><pre><span class="line">&#123;% folding 查看图片测试 %&#125;</span><br><span class="line"></span><br><span class="line">![](<span class="link">https://bu.dusays.com/2023/06/01/64788d71c832d.webp</span>)</span><br><span class="line"></span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding cyan open, 查看默认打开的折叠框 %&#125;</span><br><span class="line"></span><br><span class="line">这是一个默认打开的折叠框。</span><br><span class="line"></span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding green, 查看代码测试 %&#125;</span><br><span class="line">假装这里有代码块（代码块没法嵌套代码块）</span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding yellow, 查看列表测试 %&#125;</span><br><span class="line"></span><br><span class="line"><span class="bullet">-</span> haha</span><br><span class="line"><span class="bullet">-</span> hehe</span><br><span class="line"></span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding red, 查看嵌套测试 %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding blue, 查看嵌套测试2 %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% folding 查看嵌套测试3 %&#125;</span><br><span class="line"></span><br><span class="line">hahaha <span class="language-xml"><span class="tag">&lt;<span class="name">span</span>&gt;</span></span><span class="language-xml"><span class="tag">&lt;<span class="name">img</span> <span class="attr">src</span>=<span class="string">&#x27;https://bu.dusays.com/2023/06/01/64788cd5a356b.png&#x27;</span> <span class="attr">style</span>=<span class="string">&#x27;height:24px&#x27;</span>&gt;</span></span><span class="language-xml"><span class="tag">&lt;/<span class="name">span</span>&gt;</span></span></span><br><span class="line"></span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% endfolding %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% endfolding %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="Gallery-相册图库"><a href="#Gallery-相册图库" class="headerlink" title="Gallery 相册图库"></a>Gallery 相册图库</h2><p>一个图库集合。</p><div class="tabs" id="gallery"><ul class="nav-tabs"><button type="button" class="tab " data-href="gallery-1">标签语法</button><button type="button" class="tab " data-href="gallery-2">参数配置</button><button type="button" class="tab  active" data-href="gallery-3">样式预览</button><button type="button" class="tab " data-href="gallery-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="gallery-1"><ol><li><p>gallerygroup 相册图库</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">div</span> <span class="attr">class</span>=<span class="string">&quot;gallery-group-main&quot;</span>&gt;</span></span></span><br><span class="line">&#123;% galleryGroup name description link img-url %&#125;</span><br><span class="line">&#123;% galleryGroup name description link img-url %&#125;</span><br><span class="line">&#123;% galleryGroup name description link img-url %&#125;</span><br><span class="line"><span class="language-xml"><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span></span><br></pre></td></tr></table></figure></li><li><p>gallery 相册</p></li></ol><div class="tabs" id="gallery相册"><ul class="nav-tabs"><button type="button" class="tab  active" data-href="gallery相册-1">本地</button><button type="button" class="tab " data-href="gallery相册-2">远程</button></ul><div class="tab-contents"><div class="tab-item-content active" id="gallery相册-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">&#123;% gallery %&#125;</span><br><span class="line">markdown 图片格式</span><br><span class="line">&#123;% endgallery %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% gallery true,220,10 %&#125;</span><br><span class="line">markdown 图片格式</span><br><span class="line">&#123;% endgallery %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% gallery true,,10 %&#125;</span><br><span class="line">markdown 图片格式</span><br><span class="line">&#123;% endgallery %&#125;</span><br></pre></td></tr></table></figure><div class="table-container"><table><thead><tr><th>参数名</th><th>释义</th></tr></thead><tbody><tr><td>lazyload</td><td>【可选】点击按钮加载更多图片，填写 true/false。默认为 <code>false</code>。</td></tr><tr><td>rowHeight</td><td>【可选】图片显示的高度，如果需要一行显示更多的图片，可设置更小的数字。默认为 <code>220</code>。</td></tr><tr><td>limit</td><td>【可选】每次加载多少张照片。默认为 <code>10</code>。</td></tr></tbody></table></div></div><div class="tab-item-content" id="gallery相册-2"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">&#123;% gallery url,[link],[lazyload],[rowHeight],[limit] %&#125;</span><br><span class="line">&#123;% endgallery %&#125;</span><br></pre></td></tr></table></figure><div class="table-container"><table><thead><tr><th>参数名</th><th>释义</th></tr></thead><tbody><tr><td>url</td><td>【必须】 识别词</td></tr><tr><td>link</td><td>【必须】远程的 json 链接</td></tr><tr><td>lazyload</td><td>【可选】点击按钮加载更多图片，填写 true/false。默认为 <code>false</code>。</td></tr><tr><td>rowHeight</td><td>【可选】图片显示的高度，如果需要一行显示更多的图片，可设置更小的数字。默认为 <code>220</code>。</td></tr><tr><td>limit</td><td>【可选】每次加载多少张照片。默认为 <code>10</code>。</td></tr></tbody></table></div><blockquote><p>远程链接 Json 的例子</p></blockquote><p>有三个参数，<code>url</code>是必须存在的，<code>alt</code> 和 <code>title</code> 可有，也可没有。</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">[</span></span><br><span class="line">  <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://cdn1.tianli0.top/gh/jerryc127/CDN/img/IMG_0556.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;alt&quot;</span><span class="punctuation">:</span> <span class="string">&quot;IMG_0556.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;title&quot;</span><span class="punctuation">:</span> <span class="string">&quot;这是title&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://cdn1.tianli0.top/gh/jerryc127/CDN/img/IMG_0472.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;alt&quot;</span><span class="punctuation">:</span> <span class="string">&quot;IMG_0472.jpg&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://cdn1.tianli0.top/gh/jerryc127/CDN/img/IMG_0453.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;alt&quot;</span><span class="punctuation">:</span> <span class="string">&quot;&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://cdn1.tianli0.top/gh/jerryc127/CDN/img/IMG_0931.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;alt&quot;</span><span class="punctuation">:</span> <span class="string">&quot;&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">]</span></span><br></pre></td></tr></table></figure><blockquote><p>示例</p></blockquote><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">&#123;% gallery url,https://xxxx.com/sss.json %&#125;</span><br><span class="line">&#123;% endgallery %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% gallery url,https://xxxx.com/sss.json,true,220,10 %&#125;</span><br><span class="line">&#123;% endgallery %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% gallery url,https://xxxx.com/sss.json,true,,10 %&#125;</span><br><span class="line">&#123;% endgallery %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div></div><div class="tab-item-content" id="gallery-2"><p><ul></p><p><li><p>gallerygroup 相册图库</p></p><p><p>| 参数名      | 释义                 |<br>| :————— | :—————————- |<br>| name        | 图库名字             |<br>| description | 图库描述             |<br>| link        | 链接到对应相册的地址 |<br>| img-url     | 图库封面             |</p><br>&lt;/li&gt;<br>&lt;/ul&gt;</p><div class="note info flat"><p>思维拓展一下，相册图库的实质其实就是个快捷方式，可以自定义添加描述、封面、链接。那么我们未必要把它当做一个相册，完全可以作为一个链接卡片，链接到视频、QQ、友链都是不错的选择。</p></div><ul><li>gallery 相册<br>区别于旧版的 Gallery 相册,新的 Gallery 相册会自动根据图片长度进行排版，书写也更加方便，与 markdown 格式一样。可根据需要插入到相应的 md。无需再自己配置长宽。<strong>建议在粘贴时故意使用长短、大小、横竖不一的图片</strong>，会有更好的效果。（尺寸完全相同的图片只会平铺输出，效果很糟糕）</li></ul><div class="tabs" id="gallery相册参数"><ul class="nav-tabs"><button type="button" class="tab  active" data-href="gallery相册参数-1">本地</button><button type="button" class="tab " data-href="gallery相册参数-2">远程</button></ul><div class="tab-contents"><div class="tab-item-content active" id="gallery相册参数-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">&#123;% gallery %&#125;</span><br><span class="line">markdown 图片格式</span><br><span class="line">&#123;% endgallery %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% gallery true,220,10 %&#125;</span><br><span class="line">markdown 图片格式</span><br><span class="line">&#123;% endgallery %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% gallery true,,10 %&#125;</span><br><span class="line">markdown 图片格式</span><br><span class="line">&#123;% endgallery %&#125;</span><br></pre></td></tr></table></figure><div class="table-container"><table><thead><tr><th>参数名</th><th>释义</th></tr></thead><tbody><tr><td>lazyload</td><td>【可选】点击按钮加载更多图片，填写 true/false。默认为 <code>false</code>。</td></tr><tr><td>rowHeight</td><td>【可选】图片显示的高度，如果需要一行显示更多的图片，可设置更小的数字。默认为 <code>220</code>。</td></tr><tr><td>limit</td><td>【可选】每次加载多少张照片。默认为 <code>10</code>。</td></tr></tbody></table></div></div><div class="tab-item-content" id="gallery相册参数-2"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">&#123;% gallery url,[link],[lazyload],[rowHeight],[limit] %&#125;</span><br><span class="line">&#123;% endgallery %&#125;</span><br></pre></td></tr></table></figure><div class="table-container"><table><thead><tr><th>参数名</th><th>释义</th></tr></thead><tbody><tr><td>url</td><td>【必须】 识别词</td></tr><tr><td>link</td><td>【必须】远程的 json 链接</td></tr><tr><td>lazyload</td><td>【可选】点击按钮加载更多图片，填写 true/false。默认为 <code>false</code>。</td></tr><tr><td>rowHeight</td><td>【可选】图片显示的高度，如果需要一行显示更多的图片，可设置更小的数字。默认为 <code>220</code>。</td></tr><tr><td>limit</td><td>【可选】每次加载多少张照片。默认为 <code>10</code>。</td></tr></tbody></table></div><blockquote><p>远程链接 Json 的例子</p></blockquote><p>有三个参数，<code>url</code>是必须存在的，<code>alt</code> 和 <code>title</code> 可有，也可没有。</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">[</span></span><br><span class="line">  <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://cdn1.tianli0.top/gh/jerryc127/CDN/img/IMG_0556.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;alt&quot;</span><span class="punctuation">:</span> <span class="string">&quot;IMG_0556.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;title&quot;</span><span class="punctuation">:</span> <span class="string">&quot;这是title&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://cdn1.tianli0.top/gh/jerryc127/CDN/img/IMG_0472.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;alt&quot;</span><span class="punctuation">:</span> <span class="string">&quot;IMG_0472.jpg&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://cdn1.tianli0.top/gh/jerryc127/CDN/img/IMG_0453.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;alt&quot;</span><span class="punctuation">:</span> <span class="string">&quot;&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://cdn1.tianli0.top/gh/jerryc127/CDN/img/IMG_0931.jpg&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;alt&quot;</span><span class="punctuation">:</span> <span class="string">&quot;&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">]</span></span><br></pre></td></tr></table></figure><blockquote><p>示例</p></blockquote><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">&#123;% gallery url,https://xxxx.com/sss.json %&#125;</span><br><span class="line">&#123;% endgallery %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% gallery url,https://xxxx.com/sss.json,true,220,10 %&#125;</span><br><span class="line">&#123;% endgallery %&#125;</span><br><span class="line"></span><br><span class="line">&#123;% gallery url,https://xxxx.com/sss.json,true,,10 %&#125;</span><br><span class="line">&#123;% endgallery %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div></div><div class="tab-item-content active" id="gallery-3"><p><ul></p><p><li>gallerygroup 相册图库</li><br>&lt;/ul&gt;</p><div class="gallery-group-main">  <figure class="gallery-group">  <img class="gallery-group-img no-lightbox" src='https://bu.dusays.com/2023/06/01/64788f24d05bd.webp' alt="Group Image Gallery">  <figcaption>  <div class="gallery-group-name">MC</div>  <p>在Rikkaの六花服务器里留下的足迹</p>  <a href='/wordScenery/'></a>  </figcaption>  </figure>  <figure class="gallery-group">  <img class="gallery-group-img no-lightbox" src='https://bu.dusays.com/2023/06/01/64788f456fc3d.webp' alt="Group Image Gallery">  <figcaption>  <div class="gallery-group-name">Gundam</div>  <p>哦咧哇gundam哒！</p>  <a href='/thousand/'></a>  </figcaption>  </figure>  <figure class="gallery-group">  <img class="gallery-group-img no-lightbox" src='https://bu.dusays.com/2023/06/01/64788f83e5fa1.webp' alt="Group Image Gallery">  <figcaption>  <div class="gallery-group-name">I-am-Akilar</div>  <p>某种意义上也算自拍吧</p>  <a href='/wallpaper/'></a>  </figcaption>  </figure></div><p><ul></p><p><li>gallery 相册</li><br>&lt;/ul&gt;</p><div class="gallery">  <div class="fj-gallery page_img_lazyload lazyload btn_album_detail_lazyload data" data-rowHeight="220" data-limit="2">    <span class="gallery-data">[{"url":"https://bu.dusays.com/2023/06/01/647896b15759c.jpg","alt":""},{"url":"https://bu.dusays.com/2023/06/01/647896cabde59.jpg","alt":""},{"url":"https://bu.dusays.com/2023/06/01/647896eb0f3ea.jpg","alt":""},{"url":"https://bu.dusays.com/2023/06/01/647896ed810b3.jpg","alt":""},{"url":"https://i.loli.net/2019/12/25/6nepIJ1xTgufatZ.jpg","alt":""},{"url":"https://i.loli.net/2019/12/25/E7Jvr4eIPwUNmzq.jpg","alt":""},{"url":"https://i.loli.net/2019/12/25/mh19anwBSWIkGlH.jpg","alt":""},{"url":"https://i.loli.net/2019/12/25/2tu9JC8ewpBFagv.jpg","alt":""}]</span>  </div><button class="gallery-load-more" style="opacity:0">  <span>加载更多</span>  <i class="anzhiyufont anzhiyu-icon-arrow-down"></i>  </button></div></div><div class="tab-item-content" id="gallery-4"><p><div class="note info flat"><p>对于很多同学提问的<code>gallerygroup</code>和<code>gallery</code>相册页的链接问题。这里说下我个人的使用习惯。<br>一般使用相册图库的话，可以在导航栏加一个 gallery 的 page(<strong>使用指令<code>hexo new page gallery</code>添加</strong>)，里面放相册图库作为封面。然后在<code>[Blogroot]/source/gallery/</code>下面建立相应的文件夹，例如若按照这里的示例，若欲使用<code>/gallery/MC/</code>路径访问 MC 相册，则需要新建<code>[Blogroot]/source/gallery/MC/index.md</code>，并在里面填入<code>gallery</code>相册内容。</p></p><p><p>注意 ⚠️：本站相册集为单独优化，可参考<a href="https://anheyu.com/posts/220c.html">配置相册页面</a>。</p><br>&lt;/div&gt;</p><ol><li><p>gallerygroup 相册图库</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="language-xml"><span class="tag">&lt;<span class="name">div</span> <span class="attr">class</span>=<span class="string">&quot;gallery-group-main&quot;</span>&gt;</span></span></span><br><span class="line"> &#123;% galleryGroup MC 在Rikkaの六花服务器里留下的足迹 &#x27;/wordScenery/&#x27; https://bu.dusays.com/2023/06/01/64788f24d05bd.webp %&#125;</span><br><span class="line"> &#123;% galleryGroup Gundam 哦咧哇gundam哒！ &#x27;/thousand/&#x27; https://bu.dusays.com/2023/06/01/64788f456fc3d.webp %&#125;</span><br><span class="line"> &#123;% galleryGroup I-am-Akilar 某种意义上也算自拍吧 &#x27;/wallpaper/&#x27; https://bu.dusays.com/2023/06/01/64788f83e5fa1.webp %&#125;</span><br><span class="line"><span class="language-xml"><span class="tag">&lt;/<span class="name">div</span>&gt;</span></span></span><br></pre></td></tr></table></figure></li><li><p>gallery 相册</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">&#123;% gallery true,,2 %&#125;</span><br><span class="line">![](<span class="link">https://bu.dusays.com/2023/06/01/647896b15759c.jpg</span>)</span><br><span class="line">![](<span class="link">https://bu.dusays.com/2023/06/01/647896cabde59.jpg</span>)</span><br><span class="line">![](<span class="link">https://bu.dusays.com/2023/06/01/647896eb0f3ea.jpg</span>)</span><br><span class="line">![](<span class="link">https://bu.dusays.com/2023/06/01/647890012b1ec.webp</span>)</span><br><span class="line">![](<span class="link">https://i.loli.net/2019/12/25/6nepIJ1xTgufatZ.jpg</span>)</span><br><span class="line">![](<span class="link">https://i.loli.net/2019/12/25/E7Jvr4eIPwUNmzq.jpg</span>)</span><br><span class="line">![](<span class="link">https://i.loli.net/2019/12/25/mh19anwBSWIkGlH.jpg</span>)</span><br><span class="line">![](<span class="link">https://i.loli.net/2019/12/25/2tu9JC8ewpBFagv.jpg</span>)</span><br><span class="line">&#123;% endgallery %&#125;</span><br></pre></td></tr></table></figure></li></ol></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="tag-hide"><a href="#tag-hide" class="headerlink" title="tag-hide"></a>tag-hide</h2><div class="note blue anzhiyufont anzhiyu-icon-bullhorn flat"><p>如果你想把一些文字、内容隐藏起来，并提供按钮让用户点击显示。可以使用这个标签外挂。<br>请注意，tag-hide内的标签外挂content内都不建议有h1 - h6 等标题。因为Toc会把隐藏内容标题也显示出来，而且当滚动屏幕时，如果隐藏内容没有显示出来，会导致Toc的滚动出现异常。</p></div><div class="tabs" id="tag-hide"><ul class="nav-tabs"><button type="button" class="tab  active" data-href="tag-hide-1">inline</button><button type="button" class="tab " data-href="tag-hide-2">Block</button><button type="button" class="tab " data-href="tag-hide-3">Toggle</button></ul><div class="tab-contents"><div class="tab-item-content active" id="tag-hide-1"><p><code>inline</code> 在文本里面添加按钮隐藏内容，只限文字</p><p>( content不能包含英文逗号，可用<code>&amp;sbquo;</code>)</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% hideInline content,display,bg,color %&#125;</span><br></pre></td></tr></table></figure><ul><li><p>content: 文本内容</p></li><li><p>display: 按钮显示的文字(可选)</p></li><li><p>bg: 按钮的背景颜色(可选)</p></li><li><p>color: 按钮文字的颜色(可选)</p></li></ul><blockquote><p>Demo<br><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">哪个英文字母最酷？ &#123;% hideInline 因为西装裤(C装酷),查看答案,#FF7242,#fff %&#125;</span><br><span class="line"></span><br><span class="line">门里站着一个人? &#123;% hideInline 闪 %&#125;</span><br></pre></td></tr></table></figure></p></blockquote><p>哪个英文字母最酷？ <span class="hide-inline"><button type="button" class="hide-button" style="background-color: #FF7242;color: #fff">查看答案  </button><span class="hide-content">因为西装裤(C装酷)</span>&lt;/span&gt;</p><p>门里站着一个人? <span class="hide-inline"><button type="button" class="hide-button" style="">Click  </button><span class="hide-content">闪</span>&lt;/span&gt;</p></div><div class="tab-item-content" id="tag-hide-2"><p><code>block</code>独立的block隐藏内容，可以隐藏很多内容，包括图片，代码块等等</p><p>( display 不能包含英文逗号，可用<code>&amp;sbquo;</code>)</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% hideBlock display,bg,color %&#125;</span><br><span class="line">content</span><br><span class="line">&#123;% endhideBlock %&#125;</span><br></pre></td></tr></table></figure><ul><li><p>content: 文本内容</p></li><li><p>display: 按钮显示的文字(可选)</p></li><li><p>bg: 按钮的背景颜色(可选)</p></li><li><p>color: 按钮文字的颜色(可选)</p></li></ul><blockquote><p>Demo</p></blockquote><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">查看答案</span><br><span class="line">&#123;% hideBlock 查看答案 %&#125;</span><br><span class="line">傻子，怎么可能有答案</span><br><span class="line">&#123;% endhideBlock %&#125;</span><br></pre></td></tr></table></figure><p>查看答案</p><div class="hide-block"><button type="button" class="hide-button" style="">查看答案    </button><div class="hide-content"><p>傻子，怎么可能有答案</p></div></div></div><div class="tab-item-content" id="tag-hide-3"><p>如果你需要展示的内容太多，可以把它隐藏在收缩框里，需要时再把它展开。</p><p>( display 不能包含英文逗号，可用<code>&amp;sbquo;</code>)</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% hideToggle display,bg,color %&#125;</span><br><span class="line">content</span><br><span class="line">&#123;% endhideToggle %&#125;</span><br></pre></td></tr></table></figure><blockquote><p>Demo</p></blockquote><details class="toggle" ><summary class="toggle-button" style="">AnZhiYu主题安装方法</summary><div class="toggle-content"><p>在你的博客根目录里</p><p>git clone -b master <a href="https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git">https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git</a> themes/anzhiyu</p><p>如果想要安装比较新的dev分支，可以</p><p>git clone -b dev <a href="https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git">https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git</a> themes/anzhiyu</p></div></details></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="链接卡片-link"><a href="#链接卡片-link" class="headerlink" title="链接卡片 link"></a>链接卡片 link</h2><div class="tabs" id="link"><ul class="nav-tabs"><button type="button" class="tab " data-href="link-1">标签语法</button><button type="button" class="tab  active" data-href="link-2">样式预览</button><button type="button" class="tab " data-href="link-3">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="link-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% link 标题, 站点描述, 链接, 图片链接（可选） %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content active" id="link-2"><div calss='anzhiyu-tag-link'><a class="tag-Link" target="_blank" href="https://github.com/owen0o0/getFavicon">    <div class="tag-link-tips">引用站外地址</div>    <div class="tag-link-bottom">        <div class="tag-link-left" style="">          <i class="anzhiyufont anzhiyu-icon-link" style=""></i>        </div>        <div class="tag-link-right">            <div class="tag-link-title">获取网站的Favicon图标并显示在你的网页上</div>            <div class="tag-link-sitename">owen0o0</div>        </div>        <i class="anzhiyufont anzhiyu-icon-angle-right"></i>    </div>    </a></div></div><div class="tab-item-content" id="link-3"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% link 获取网站的Favicon图标并显示在你的网页上,owen0o0,https://github.com/owen0o0/getFavicon %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="单选列表-radio"><a href="#单选列表-radio" class="headerlink" title="单选列表 radio"></a>单选列表 radio</h2><div class="tabs" id="radio"><ul class="nav-tabs"><button type="button" class="tab " data-href="radio-1">标签语法</button><button type="button" class="tab " data-href="radio-2">配置参数</button><button type="button" class="tab  active" data-href="radio-3">样式预览</button><button type="button" class="tab " data-href="radio-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="radio-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% radio 样式参数（可选）, 文本（支持简单md） %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="radio-2"><ol><li>颜色: <span class='p red'>red</span>,<span class='p yellow'>yellow</span>,<span class='p green'>green</span>,<span class='p cyan'>cyan</span>,<span class='p blue'>blue</span>,<span class='p gray'>gray</span></li><li>选中状态: checked</li></ol></div><div class="tab-item-content active" id="radio-3"><div class='checkbox'><input type="radio" />            <p>纯文本测试</p>            </div>   <div class='checkbox checked'><input type="radio" checked="checked"/>            <p>支持简单的 <a href="https://guides.github.com/features/mastering-markdown/">markdown</a> 语法</p>            </div>   <div class='checkbox red'><input type="radio" />            <p>支持自定义颜色</p>            </div>   <div class='checkbox green'><input type="radio" />            <p>绿色</p>            </div>   <div class='checkbox yellow'><input type="radio" />            <p>黄色</p>            </div>   <div class='checkbox cyan'><input type="radio" />            <p>青色</p>            </div>   <div class='checkbox blue'><input type="radio" />            <p>蓝色</p>            </div></div><div class="tab-item-content" id="radio-4"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% radio 纯文本测试 %&#125;</span><br><span class="line">&#123;% radio checked, 支持简单的 [<span class="string">markdown</span>](<span class="link">https://guides.github.com/features/mastering-markdown/</span>) 语法 %&#125;</span><br><span class="line">&#123;% radio red, 支持自定义颜色 %&#125;</span><br><span class="line">&#123;% radio green, 绿色 %&#125;</span><br><span class="line">&#123;% radio yellow, 黄色 %&#125;</span><br><span class="line">&#123;% radio cyan, 青色 %&#125;</span><br><span class="line">&#123;% radio blue, 蓝色 %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="上标标签-tip"><a href="#上标标签-tip" class="headerlink" title="上标标签 tip"></a>上标标签 tip</h2><div class="tip cogs"><p>主要样式参考自<a href="https://www.antmoe.com/posts/3b43914f/">小康的 butterfly 渐变背景标签</a></p></div><div class="tabs" id="tip"><ul class="nav-tabs"><button type="button" class="tab " data-href="tip-1">标签语法</button><button type="button" class="tab " data-href="tip-2">配置参数</button><button type="button" class="tab  active" data-href="tip-3">样式预览</button><button type="button" class="tab " data-href="tip-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="tip-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% tip [参数，可选] %&#125;文本内容&#123;% endtip %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="tip-2"><ol><li>样式: success,error,warning,bolt,ban,home,sync,cogs,key,bell</li><li>自定义图标: 支持 fontawesome。</li></ol></div><div class="tab-item-content active" id="tip-3"><div class="tip "><p>default</p></div><div class="tip info"><p>info</p></div><div class="tip success"><p>success</p></div><div class="tip error"><p>error</p></div><div class="tip warning"><p>warning</p></div><div class="tip bolt"><p>bolt</p></div><div class="tip ban"><p>ban</p></div><div class="tip home"><p>home</p></div><div class="tip sync"><p>sync</p></div><div class="tip cogs"><p>cogs</p></div><div class="tip key"><p>key</p></div><div class="tip bell"><p>bell</p></div><div class="tip fa-atom"><p>自定义 font awesome 图标</p></div></div><div class="tab-item-content" id="tip-4"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">&#123;% tip %&#125;default&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip info %&#125;info&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip success %&#125;success&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip error %&#125;error&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip warning %&#125;warning&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip bolt %&#125;bolt&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip ban %&#125;ban&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip home %&#125;home&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip sync %&#125;sync&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip cogs %&#125;cogs&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip key %&#125;key&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip bell %&#125;bell&#123;% endtip %&#125;</span><br><span class="line">&#123;% tip fa-atom %&#125;自定义 font awesome 图标&#123;% endtip %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="Note-Bootstrap-Callout"><a href="#Note-Bootstrap-Callout" class="headerlink" title="Note (Bootstrap Callout)"></a>Note (Bootstrap Callout)</h2><div class="tabs" id="note"><ul class="nav-tabs"><button type="button" class="tab " data-href="note-1">通用配置</button><button type="button" class="tab " data-href="note-2">语法格式</button><button type="button" class="tab " data-href="note-3">配置参数</button><button type="button" class="tab  active" data-href="note-4">样式预览</button><button type="button" class="tab " data-href="note-5">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="note-1"><p>修改主题配置文件</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">note:</span></span><br><span class="line">  <span class="comment"># Note tag style values:</span></span><br><span class="line">  <span class="comment">#  - simple    bs-callout old alert style. Default.</span></span><br><span class="line">  <span class="comment">#  - modern    bs-callout new (v2-v3) alert style.</span></span><br><span class="line">  <span class="comment">#  - flat      flat callout style with background, like on Mozilla or StackOverflow.</span></span><br><span class="line">  <span class="comment">#  - disabled  disable all CSS styles import of note tag.</span></span><br><span class="line">  <span class="attr">style:</span> <span class="string">simple</span></span><br><span class="line">  <span class="attr">icons:</span> <span class="literal">false</span></span><br><span class="line">  <span class="attr">border_radius:</span> <span class="number">3</span></span><br><span class="line">  <span class="comment"># Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).</span></span><br><span class="line">  <span class="comment"># Offset also applied to label tag variables. This option can work with disabled note tag.</span></span><br><span class="line">  <span class="attr">light_bg_offset:</span> <span class="number">0</span></span><br></pre></td></tr></table></figure><p><code>Note</code>标签外挂有两种用法。<code>icons</code>和<code>light_bg_offset</code>只对方法一生效。</p><p><code>fontawesome</code>图标需开启主题配置文件中<code>icons.fontawesome</code></p></div><div class="tab-item-content" id="note-2"><p><code>方法一</code></p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note [class] [no-icon] [style] %&#125;</span><br><span class="line">Any content (support inline tags too.io).</span><br><span class="line">&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><p><code>方法二</code></p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note [color] [icon] [style] %&#125;</span><br><span class="line">Any content (support inline tags too.io).</span><br><span class="line">&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="note-3"><p><code>方法一</code></p><div class="table-container"><table><thead><tr><th style="text-align:left">参数</th><th style="text-align:left">用法</th></tr></thead><tbody><tr><td style="text-align:left">class</td><td style="text-align:left">【可选】标识，不同的标识有不同的配色<br>（ default / primary / success / info / warning / danger ）</td></tr><tr><td style="text-align:left">no-icon</td><td style="text-align:left">【可选】不显示 icon</td></tr><tr><td style="text-align:left">style</td><td style="text-align:left">【可选】可以覆盖配置中的 style<br>（simple/modern/flat/disabled）</td></tr></tbody></table></div><p><code>方法二</code><br>|参数|用法|<br>|:—|:——————-|<br>|class|【可选】标识，不同的标识有不同的配色<br>（ default / blue / pink / red / purple / orange / green ）|<br>|no-icon|【可选】可配置自定义 icon (支持 fontawesome 图标和主题内置的阿里图标,<code>fontawesome</code>图标需开启主题配置文件中<code>icons.fontawesome</code>, 也可以配置 no-icon )|<br>|style| 【可选】可以覆盖配置中的 style<br>（simple/modern/flat/disabled）|</p></div><div class="tab-item-content active" id="note-4"><p><code>方法一</code></p><ol><li><code>simple</code>样式</li></ol><div class="note simple"><p>默认 提示块标签</p></div><div class="note default simple"><p>default 提示块标签</p></div><div class="note primary simple"><p>primary 提示块标签</p></div><div class="note success simple"><p>success 提示块标签</p></div><div class="note info simple"><p>info 提示块标签</p></div><div class="note warning simple"><p>warning 提示块标签</p></div><div class="note danger simple"><p>danger 提示块标签</p></div><ol><li><code>modern</code>样式</li></ol><div class="note modern"><p>默认 提示块标签</p></div><div class="note default modern"><p>default 提示块标签</p></div><div class="note primary modern"><p>primary 提示块标签</p></div><div class="note success modern"><p>success 提示块标签</p></div><div class="note info modern"><p>info 提示块标签</p></div><div class="note warning modern"><p>warning 提示块标签</p></div><div class="note danger modern"><p>danger 提示块标签</p></div><ol><li><code>flat</code>样式</li></ol><div class="note flat"><p>默认 提示块标签</p></div><div class="note default flat"><p>default 提示块标签</p></div><div class="note primary flat"><p>primary 提示块标签</p></div><div class="note success flat"><p>success 提示块标签</p></div><div class="note info flat"><p>info 提示块标签</p></div><div class="note warning flat"><p>warning 提示块标签</p></div><div class="note danger flat"><p>danger 提示块标签</p></div><ol><li><code>disabled</code>样式</li></ol><div class="note disabled"><p>默认 提示块标签</p></div><div class="note default disabled"><p>default 提示块标签</p></div><div class="note primary disabled"><p>primary 提示块标签</p></div><div class="note success disabled"><p>success 提示块标签</p></div><div class="note info disabled"><p>info 提示块标签</p></div><div class="note warning disabled"><p>warning 提示块标签</p></div><div class="note danger disabled"><p>danger 提示块标签</p></div><ol><li><code>no-icon</code>样式</li></ol><div class="note no-icon flat"><p>默认 提示块标签</p></div><div class="note default no-icon flat"><p>default 提示块标签</p></div><div class="note primary no-icon flat"><p>primary 提示块标签</p></div><div class="note success no-icon flat"><p>success 提示块标签</p></div><div class="note info no-icon flat"><p>info 提示块标签</p></div><div class="note warning no-icon flat"><p>warning 提示块标签</p></div><div class="note danger no-icon flat"><p>danger 提示块标签</p></div><p><code>方法二</code></p><p>图标支持 <code>fontawesome</code> 和 <code>主题内置的阿里图标</code>，使用方法为加上对应的类名，<code>fontawesome</code>图标需开启主题配置文件中<code>icons.fontawesome</code>，默认未开启 fontawesome</p><ol><li>simple 样式</li></ol><p><code>主题内置阿里图标</code></p><div class="note anzhiyufont anzhiyu-icon-rocket simple"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue anzhiyufont anzhiyu-icon-bullhorn simple"><p>2022 年快到了….</p></div><div class="note pink anzhiyufont anzhiyu-icon-instagram simple"><p>小心开车 安全至上</p></div><div class="note red anzhiyufont anzhiyu-icon-fan simple"><p>这是三片呢？还是四片？</p></div><div class="note orange anzhiyufont anzhiyu-icon-dengpao simple"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple anzhiyufont anzhiyu-icon-sanmingzhi simple"><p>剪刀石头布</p></div><div class="note green anzhiyufont anzhiyu-icon-ic_train simple"><p>前端最讨厌的浏览器</p></div><p><code>fontawesome 图标</code>，开启主题配置文件中的<code>icons.fontawesome</code>为<code>true</code>后可见</p><div class="note icon-padding simple"><i class="note-icon fab fa-cc-visa"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue icon-padding simple"><i class="note-icon fas fa-bullhorn"></i><p>2022 年快到了….</p></div><div class="note pink icon-padding simple"><i class="note-icon fas fa-car-crash"></i><p>小心开车 安全至上</p></div><div class="note red icon-fan simple"><p>这是三片呢？还是四片？</p></div><div class="note orange icon-padding simple"><i class="note-icon fas fa-battery-half"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple icon-padding simple"><i class="note-icon far fa-hand-scissors"></i><p>剪刀石头布</p></div><div class="note green icon-padding simple"><i class="note-icon fab fa-internet-explorer"></i><p>前端最讨厌的浏器</p></div><ol><li>modern 样式</li></ol><p><code>主题内置阿里图标</code></p><div class="note anzhiyufont anzhiyu-icon-rocket modern"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue anzhiyufont anzhiyu-icon-bullhorn modern"><p>2022 年快到了….</p></div><div class="note pink anzhiyufont anzhiyu-icon-instagram modern"><p>小心开车 安全至上</p></div><div class="note red anzhiyufont anzhiyu-icon-fan modern"><p>这是三片呢？还是四片？</p></div><div class="note orange anzhiyufont anzhiyu-icon-dengpao modern"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple anzhiyufont anzhiyu-icon-sanmingzhi modern"><p>剪刀石头布</p></div><div class="note green anzhiyufont anzhiyu-icon-ic_train modern"><p>前端最讨厌的浏览器</p></div><p><code>fontawesome 图标</code>，开启主题配置文件中的<code>icons.fontawesome</code>为<code>true</code>后可见</p><div class="note icon-padding modern"><i class="note-icon fab fa-cc-visa"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue icon-padding modern"><i class="note-icon fas fa-bullhorn"></i><p>2021 年快到了….</p></div><div class="note pink icon-padding modern"><i class="note-icon fas fa-car-crash"></i><p>小心开车 安全至上</p></div><div class="note red icon-fan modern"><p>这是三片呢？还是四片？</p></div><div class="note orange icon-padding modern"><i class="note-icon fas fa-battery-half"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple icon-padding modern"><i class="note-icon far fa-hand-scissors"></i><p>剪刀石头布</p></div><div class="note green icon-padding modern"><i class="note-icon fab fa-internet-explorer"></i><p>前端最讨厌的浏览器</p></div><ol><li>flat 样式</li></ol><p><code>主题内置阿里图标</code></p><div class="note anzhiyufont anzhiyu-icon-rocket flat"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue anzhiyufont anzhiyu-icon-bullhorn flat"><p>2022 年快到了….</p></div><div class="note pink anzhiyufont anzhiyu-icon-instagram flat"><p>小心开车 安全至上</p></div><div class="note red anzhiyufont anzhiyu-icon-fan flat"><p>这是三片呢？还是四片？</p></div><div class="note orange anzhiyufont anzhiyu-icon-dengpao flat"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple anzhiyufont anzhiyu-icon-sanmingzhi flat"><p>剪刀石头布</p></div><div class="note green anzhiyufont anzhiyu-icon-ic_train flat"><p>前端最讨厌的浏览器</p></div><p><code>fontawesome 图标</code>，开启主题配置文件中的<code>icons.fontawesome</code>为<code>true</code>后可见</p><div class="note icon-padding flat"><i class="note-icon fab fa-cc-visa"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue icon-padding flat"><i class="note-icon fas fa-bullhorn"></i><p>2021 年快到了….</p></div><div class="note pink icon-padding flat"><i class="note-icon fas fa-car-crash"></i><p>小心开车 安全至上</p></div><div class="note red icon-fan flat"><p>这是三片呢？还是四片？</p></div><div class="note orange icon-padding flat"><i class="note-icon fas fa-battery-half"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple icon-padding flat"><i class="note-icon far fa-hand-scissors"></i><p>剪刀石头布</p></div><div class="note green icon-padding flat"><i class="note-icon fab fa-internet-explorer"></i><p>前端最讨厌的浏览器</p></div><ol><li>disabled 样式</li></ol><p><code>主题内置阿里图标</code></p><div class="note anzhiyufont anzhiyu-icon-rocket disabled"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue anzhiyufont anzhiyu-icon-bullhorn disabled"><p>2022 年快到了….</p></div><div class="note pink anzhiyufont anzhiyu-icon-instagram disabled"><p>小心开车 安全至上</p></div><div class="note red anzhiyufont anzhiyu-icon-fan disabled"><p>这是三片呢？还是四片？</p></div><div class="note orange anzhiyufont anzhiyu-icon-dengpao disabled"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple anzhiyufont anzhiyu-icon-sanmingzhi disabled"><p>剪刀石头布</p></div><div class="note green anzhiyufont anzhiyu-icon-ic_train disabled"><p>前端最讨厌的浏览器</p></div><p><code>fontawesome 图标</code>，开启主题配置文件中的<code>icons.fontawesome</code>为<code>true</code>后可见</p><div class="note icon-padding disabled"><i class="note-icon fab fa-cc-visa"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue icon-padding disabled"><i class="note-icon fas fa-bullhorn"></i><p>2021 年快到了….</p></div><div class="note pink icon-padding disabled"><i class="note-icon fas fa-car-crash"></i><p>小心开车 安全至上</p></div><div class="note red icon-fan disabled"><p>这是三片呢？还是四片？</p></div><div class="note orange icon-padding disabled"><i class="note-icon fas fa-battery-half"></i><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple icon-padding disabled"><i class="note-icon far fa-hand-scissors"></i><p>剪刀石头布</p></div><div class="note green icon-padding disabled"><i class="note-icon fab fa-internet-explorer"></i><p>前端最讨厌的浏览器</p></div><ol><li>no-icon 样式</li></ol><div class="note no-icon flat"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note blue no-icon flat"><p>2021 年快到了….</p></div><div class="note pink no-icon flat"><p>小心开车 安全至上</p></div><div class="note red no-icon flat"><p>这是三片呢？还是四片？</p></div><div class="note orange no-icon flat"><p>你是刷 Visa 还是 UnionPay</p></div><div class="note purple no-icon flat"><p>剪刀石头布</p></div><div class="note green no-icon flat"><p>前端最讨厌的浏览器</p></div></div><div class="tab-item-content" id="note-5"><p><code>方法一</code></p><ol><li><code>simple</code>样式</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note simple %&#125;默认 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note default simple %&#125;default 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note primary simple %&#125;primary 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note success simple %&#125;success 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note info simple %&#125;info 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note warning simple %&#125;warning 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note danger simple %&#125;danger 提示块标签&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><ol><li><code>modern</code>样式</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note modern %&#125;默认 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note default modern %&#125;default 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note primary modern %&#125;primary 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note success modern %&#125;success 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note info modern %&#125;info 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note warning modern %&#125;warning 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note danger modern %&#125;danger 提示块标签&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><ol><li><code>flat</code>样式</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note flat %&#125;默认 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note default flat %&#125;default 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note primary flat %&#125;primary 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note success flat %&#125;success 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note info flat %&#125;info 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note warning flat %&#125;warning 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note danger flat %&#125;danger 提示块标签&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><ol><li><code>disabled</code>样式</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note disabled %&#125;默认 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note default disabled %&#125;default 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note primary disabled %&#125;primary 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note success disabled %&#125;success 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note info disabled %&#125;info 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note warning disabled %&#125;warning 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note danger disabled %&#125;danger 提示块标签&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><ol><li><code>no-icon</code>样式</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note no-icon %&#125;默认 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note default no-icon %&#125;default 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note primary no-icon %&#125;primary 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note success no-icon %&#125;success 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note info no-icon %&#125;info 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note warning no-icon %&#125;warning 提示块标签&#123;% endnote %&#125;</span><br><span class="line">&#123;% note danger no-icon %&#125;danger 提示块标签&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure><p><code>方法二</code></p><p>图标支持 <code>fontawesome</code> 和 <code>主题内置的阿里图标</code>，使用方法为加上对应的类名，<code>fontawesome</code>图标需开启主题配置文件中<code>icons.fontawesome</code>，默认未开启 fontawesome</p><ol><li><p>simple 样式<br><code>主题内置阿里图标</code></p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note &#x27;anzhiyufont anzhiyu-icon-rocket&#x27; simple %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note blue &#x27;anzhiyufont anzhiyu-icon-bullhorn&#x27; simple %&#125;2022 年快到了....&#123;% endnote %&#125;</span><br><span class="line">&#123;% note pink &#x27;anzhiyufont anzhiyu-icon-instagram&#x27; simple %&#125;小心开车 安全至上&#123;% endnote %&#125;</span><br><span class="line">&#123;% note red &#x27;anzhiyufont anzhiyu-icon-fan&#x27; simple%&#125;这是三片呢？还是四片？&#123;% endnote %&#125;</span><br><span class="line">&#123;% note orange &#x27;anzhiyufont anzhiyu-icon-dengpao&#x27; simple %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note purple &#x27;anzhiyufont anzhiyu-icon-sanmingzhi&#x27; simple %&#125;剪刀石头布&#123;% endnote %&#125;</span><br><span class="line">&#123;% note green &#x27;anzhiyufont anzhiyu-icon-ic<span class="emphasis">_train&#x27; simple %&#125;前端最讨厌的浏览器&#123;% endnote %&#125;</span></span><br></pre></td></tr></table></figure><p><code>fontawesome 图标</code>，开启主题配置文件中的<code>icons.fontawesome</code>为<code>true</code>后可见</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note &#x27;fab fa-cc-visa&#x27; simple %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note blue &#x27;fas fa-bullhorn&#x27; simple %&#125;2022 年快到了....&#123;% endnote %&#125;</span><br><span class="line">&#123;% note pink &#x27;fas fa-car-crash&#x27; simple %&#125;小心开车 安全至上&#123;% endnote %&#125;</span><br><span class="line">&#123;% note red &#x27;icon-fan&#x27; simple%&#125;这是三片呢？还是四片？&#123;% endnote %&#125;</span><br><span class="line">&#123;% note orange &#x27;fas fa-battery-half&#x27; simple %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note purple &#x27;far fa-hand-scissors&#x27; simple %&#125;剪刀石头布&#123;% endnote %&#125;</span><br><span class="line">&#123;% note green &#x27;fab fa-internet-explorer&#x27; simple %&#125;前端最讨厌的浏览器&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure></li><li><p>modern 样式<br><code>主题内置阿里图标</code></p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note &#x27;anzhiyufont anzhiyu-icon-rocket&#x27; modern %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note blue &#x27;anzhiyufont anzhiyu-icon-bullhorn&#x27; modern %&#125;2022 年快到了....&#123;% endnote %&#125;</span><br><span class="line">&#123;% note pink &#x27;anzhiyufont anzhiyu-icon-instagram&#x27; modern %&#125;小心开车 安全至上&#123;% endnote %&#125;</span><br><span class="line">&#123;% note red &#x27;anzhiyufont anzhiyu-icon-fan&#x27; modern%&#125;这是三片呢？还是四片？&#123;% endnote %&#125;</span><br><span class="line">&#123;% note orange &#x27;anzhiyufont anzhiyu-icon-dengpao&#x27; modern %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note purple &#x27;anzhiyufont anzhiyu-icon-sanmingzhi&#x27; modern %&#125;剪刀石头布&#123;% endnote %&#125;</span><br><span class="line">&#123;% note green &#x27;anzhiyufont anzhiyu-icon-ic<span class="emphasis">_train&#x27; modern %&#125;前端最讨厌的浏览器&#123;% endnote %&#125;</span></span><br></pre></td></tr></table></figure><p><code>fontawesome 图标</code>，开启主题配置文件中的<code>icons.fontawesome</code>为<code>true</code>后可见</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note &#x27;fab fa-cc-visa&#x27; modern %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note blue &#x27;fas fa-bullhorn&#x27; modern %&#125;2021 年快到了....&#123;% endnote %&#125;</span><br><span class="line">&#123;% note pink &#x27;fas fa-car-crash&#x27; modern %&#125;小心开车 安全至上&#123;% endnote %&#125;</span><br><span class="line">&#123;% note red &#x27;icon-fan&#x27; modern%&#125;这是三片呢？还是四片？&#123;% endnote %&#125;</span><br><span class="line">&#123;% note orange &#x27;fas fa-battery-half&#x27; modern %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note purple &#x27;far fa-hand-scissors&#x27; modern %&#125;剪刀石头布&#123;% endnote %&#125;</span><br><span class="line">&#123;% note green &#x27;fab fa-internet-explorer&#x27; modern %&#125;前端最讨厌的浏览器&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure></li><li><p>flat 样式<br><code>主题内置阿里图标</code></p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note &#x27;anzhiyufont anzhiyu-icon-rocket&#x27; flat %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note blue &#x27;anzhiyufont anzhiyu-icon-bullhorn&#x27; flat %&#125;2022 年快到了....&#123;% endnote %&#125;</span><br><span class="line">&#123;% note pink &#x27;anzhiyufont anzhiyu-icon-instagram&#x27; flat %&#125;小心开车 安全至上&#123;% endnote %&#125;</span><br><span class="line">&#123;% note red &#x27;anzhiyufont anzhiyu-icon-fan&#x27; flat%&#125;这是三片呢？还是四片？&#123;% endnote %&#125;</span><br><span class="line">&#123;% note orange &#x27;anzhiyufont anzhiyu-icon-dengpao&#x27; flat %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note purple &#x27;anzhiyufont anzhiyu-icon-sanmingzhi&#x27; flat %&#125;剪刀石头布&#123;% endnote %&#125;</span><br><span class="line">&#123;% note green &#x27;anzhiyufont anzhiyu-icon-ic<span class="emphasis">_train&#x27; flat %&#125;前端最讨厌的浏览器&#123;% endnote %&#125;</span></span><br></pre></td></tr></table></figure><p><code>fontawesome 图标</code>，开启主题配置文件中的<code>icons.fontawesome</code>为<code>true</code>后可见</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note &#x27;fab fa-cc-visa&#x27; flat %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note blue &#x27;fas fa-bullhorn&#x27; flat %&#125;2021 年快到了....&#123;% endnote %&#125;</span><br><span class="line">&#123;% note pink &#x27;fas fa-car-crash&#x27; flat %&#125;小心开车 安全至上&#123;% endnote %&#125;</span><br><span class="line">&#123;% note red &#x27;icon-fan&#x27; flat%&#125;这是三片呢？还是四片？&#123;% endnote %&#125;</span><br><span class="line">&#123;% note orange &#x27;fas fa-battery-half&#x27; flat %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note purple &#x27;far fa-hand-scissors&#x27; flat %&#125;剪刀石头布&#123;% endnote %&#125;</span><br><span class="line">&#123;% note green &#x27;fab fa-internet-explorer&#x27; flat %&#125;前端最讨厌的浏览器&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure></li><li><p>disabled 样式<br><code>主题内置阿里图标</code></p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note &#x27;anzhiyufont anzhiyu-icon-rocket&#x27; disabled %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note blue &#x27;anzhiyufont anzhiyu-icon-bullhorn&#x27; disabled %&#125;2022 年快到了....&#123;% endnote %&#125;</span><br><span class="line">&#123;% note pink &#x27;anzhiyufont anzhiyu-icon-instagram&#x27; disabled %&#125;小心开车 安全至上&#123;% endnote %&#125;</span><br><span class="line">&#123;% note red &#x27;anzhiyufont anzhiyu-icon-fan&#x27; disabled%&#125;这是三片呢？还是四片？&#123;% endnote %&#125;</span><br><span class="line">&#123;% note orange &#x27;anzhiyufont anzhiyu-icon-dengpao&#x27; disabled %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note purple &#x27;anzhiyufont anzhiyu-icon-sanmingzhi&#x27; disabled %&#125;剪刀石头布&#123;% endnote %&#125;</span><br><span class="line">&#123;% note green &#x27;anzhiyufont anzhiyu-icon-ic<span class="emphasis">_train&#x27; disabled %&#125;前端最讨厌的浏览器&#123;% endnote %&#125;</span></span><br></pre></td></tr></table></figure><p><code>fontawesome 图标</code>，开启主题配置文件中的<code>icons.fontawesome</code>为<code>true</code>后可见</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note &#x27;fab fa-cc-visa&#x27; disabled %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note blue &#x27;fas fa-bullhorn&#x27; disabled %&#125;2021 年快到了....&#123;% endnote %&#125;</span><br><span class="line">&#123;% note pink &#x27;fas fa-car-crash&#x27; disabled %&#125;小心开车 安全至上&#123;% endnote %&#125;</span><br><span class="line">&#123;% note red &#x27;icon-fan&#x27; disabled %&#125;这是三片呢？还是四片？&#123;% endnote %&#125;</span><br><span class="line">&#123;% note orange &#x27;fas fa-battery-half&#x27; disabled %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note purple &#x27;far fa-hand-scissors&#x27; disabled %&#125;剪刀石头布&#123;% endnote %&#125;</span><br><span class="line">&#123;% note green &#x27;fab fa-internet-explorer&#x27; disabled %&#125;前端最讨厌的浏览器&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure></li><li><p>no-icon 样式</p><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&#123;% note no-icon %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note blue no-icon %&#125;2021 年快到了....&#123;% endnote %&#125;</span><br><span class="line">&#123;% note pink no-icon %&#125;小心开车 安全至上&#123;% endnote %&#125;</span><br><span class="line">&#123;% note red no-icon %&#125;这是三片呢？还是四片？&#123;% endnote %&#125;</span><br><span class="line">&#123;% note orange no-icon %&#125;你是刷 Visa 还是 UnionPay&#123;% endnote %&#125;</span><br><span class="line">&#123;% note purple no-icon %&#125;剪刀石头布&#123;% endnote %&#125;</span><br><span class="line">&#123;% note green no-icon %&#125;前端最讨厌的浏览器&#123;% endnote %&#125;</span><br></pre></td></tr></table></figure></li></ol></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="音频-audio"><a href="#音频-audio" class="headerlink" title="音频 audio"></a>音频 audio</h2><div class="tabs" id="audio"><ul class="nav-tabs"><button type="button" class="tab " data-href="audio-1">标签语法</button><button type="button" class="tab  active" data-href="audio-2">样式预览</button><button type="button" class="tab " data-href="audio-3">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="audio-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% audio 音频链接 %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content active" id="audio-2"><div class="audio"><audio controls preload><source src='https://npm.elemecdn.com/anzhiyu-music@1.0.4/%E9%9D%92%E8%8A%B1%E7%93%B7/%E9%9D%92%E8%8A%B1%E7%93%B7.mp3' type='audio/mp3'>Your browser does not support the audio tag.</audio></div></div><div class="tab-item-content" id="audio-3"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% audio https://npm.elemecdn.com/anzhiyu-music@1.0.4/%E9%9D%92%E8%8A%B1%E7%93%B7/%E9%9D%92%E8%8A%B1%E7%93%B7.mp3 %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="视频-video"><a href="#视频-video" class="headerlink" title="视频 video"></a>视频 video</h2><div class="tabs" id="video"><ul class="nav-tabs"><button type="button" class="tab " data-href="video-1">标签语法</button><button type="button" class="tab " data-href="video-2">参数配置</button><button type="button" class="tab  active" data-href="video-3">样式预览</button><button type="button" class="tab " data-href="video-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="video-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% video 视频链接 %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="video-2"><ol><li>对其方向：left, center, right</li><li>列数：逗号后面直接写列数，支持 1 ～ 4 列。</li></ol></div><div class="tab-item-content active" id="video-3"><ol><li>100%宽度</li></ol><p><img src="https://bu.dusays.com/2023/06/01/6478a1eeb1386.png" alt="100%宽度"></p><ol><li>50%宽度</li></ol><p><img src="https://bu.dusays.com/2023/06/01/6478a20a5f242.png" alt="50%宽度"></p><ol><li>25%宽度</li></ol><p><img src="https://bu.dusays.com/2023/06/01/6478a22b26088.png" alt="25%宽度"></p></div><div class="tab-item-content" id="video-4"><ol><li>100%宽度</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG<span class="emphasis">_0341.mov %&#125;</span></span><br></pre></td></tr></table></figure><ol><li>50%宽度</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">&#123;% videos, 2 %&#125;</span><br><span class="line">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG<span class="emphasis">_0341.mov %&#125;</span></span><br><span class="line"><span class="emphasis">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG_</span>0341.mov %&#125;</span><br><span class="line">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG<span class="emphasis">_0341.mov %&#125;</span></span><br><span class="line"><span class="emphasis">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG_</span>0341.mov %&#125;</span><br><span class="line">&#123;% endvideos %&#125;</span><br></pre></td></tr></table></figure><ol><li>25%宽度</li></ol><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">&#123;% videos, 4 %&#125;</span><br><span class="line">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG<span class="emphasis">_0341.mov %&#125;</span></span><br><span class="line"><span class="emphasis">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG_</span>0341.mov %&#125;</span><br><span class="line">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG<span class="emphasis">_0341.mov %&#125;</span></span><br><span class="line"><span class="emphasis">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG_</span>0341.mov %&#125;</span><br><span class="line">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG<span class="emphasis">_0341.mov %&#125;</span></span><br><span class="line"><span class="emphasis">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG_</span>0341.mov %&#125;</span><br><span class="line">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG<span class="emphasis">_0341.mov %&#125;</span></span><br><span class="line"><span class="emphasis">&#123;% video https://github.com/volantis-x/volantis-docs/releases/download/assets/IMG_</span>0341.mov %&#125;</span><br><span class="line">&#123;% endvideos %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="段落文本-p"><a href="#段落文本-p" class="headerlink" title="段落文本 p"></a>段落文本 p</h2><div class="tabs" id="p"><ul class="nav-tabs"><button type="button" class="tab " data-href="p-1">标签语法</button><button type="button" class="tab " data-href="p-2">配置参数</button><button type="button" class="tab  active" data-href="p-3">样式预览</button><button type="button" class="tab " data-href="p-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="p-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% p 样式参数(参数以空格划分), 文本内容 %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="p-2"><ol><li>字体: logo, code</li><li>颜色: <span class='p red'>red</span>,<span class='p yellow'>yellow</span>,<span class='p green'>green</span>,<span class='p cyan'>cyan</span>,<span class='p blue'>blue</span>,<span class='p gray'>gray</span></li><li>大小: small, h4, h3, h2, h1, large, huge, ultra</li><li>对齐方向: left, center, right</li></ol></div><div class="tab-item-content active" id="p-3"><ul><li>彩色文字<br>在一段话中方便插入各种颜色的标签，包括：<p class='p red'>红色</p>、<p class='p yellow'>黄色</p>、<p class='p green'>绿色</p>、<p class='p cyan'>青色</p>、<p class='p blue'>蓝色</p>、<p class='p gray'>灰色</p>。</li><li>超大号文字<br>文档「开始」页面中的标题部分就是超大号文字。<p class='p center logo large'>Volantis</p><p class='p center small'>A Wonderful Theme for Hexo</p></li></ul></div><div class="tab-item-content" id="p-4"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="bullet">-</span> 彩色文字</span><br><span class="line">  在一段话中方便插入各种颜色的标签，包括：&#123;% p red, 红色 %&#125;、&#123;% p yellow, 黄色 %&#125;、&#123;% p green, 绿色 %&#125;、&#123;% p cyan, 青色 %&#125;、&#123;% p blue, 蓝色 %&#125;、&#123;% p gray, 灰色 %&#125;。</span><br><span class="line"><span class="bullet">-</span> 超大号文字</span><br><span class="line">  文档「开始」页面中的标题部分就是超大号文字。</span><br><span class="line">  &#123;% p center logo large, Volantis %&#125;</span><br><span class="line">  &#123;% p center small, A Wonderful Theme for Hexo %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="行内文本-span"><a href="#行内文本-span" class="headerlink" title="行内文本 span"></a>行内文本 span</h2><div class="tabs" id="span"><ul class="nav-tabs"><button type="button" class="tab " data-href="span-1">标签语法</button><button type="button" class="tab " data-href="span-2">配置参数</button><button type="button" class="tab  active" data-href="span-3">样式预览</button><button type="button" class="tab " data-href="span-4">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="span-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% span 样式参数(参数以空格划分), 文本内容 %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content" id="span-2"><ol><li>字体: logo, code</li><li>颜色: <span class='p red'>red</span>,<span class='p yellow'>yellow</span>,<span class='p green'>green</span>,<span class='p cyan'>cyan</span>,<span class='p blue'>blue</span>,<span class='p gray'>gray</span></li><li>大小: small, h4, h3, h2, h1, large, huge, ultra</li><li>对齐方向: left, center, right</li></ol></div><div class="tab-item-content active" id="span-3"><ul><li>彩色文字<br>在一段话中方便插入各种颜色的标签，包括：<span class='p red'>红色</span>、<span class='p yellow'>黄色</span>、<span class='p green'>绿色</span>、<span class='p cyan'>青色</span>、<span class='p blue'>蓝色</span>、<span class='p gray'>灰色</span>。</li><li>超大号文字<br>文档「开始」页面中的标题部分就是超大号文字。<br><span class='p center logo large'>Volantis</span><br><span class='p center small'>A Wonderful Theme for Hexo</span></li></ul></div><div class="tab-item-content" id="span-4"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="bullet">-</span> 彩色文字</span><br><span class="line">  在一段话中方便插入各种颜色的标签，包括：&#123;% span red, 红色 %&#125;、&#123;% span yellow, 黄色 %&#125;、&#123;% span green, 绿色 %&#125;、&#123;% span cyan, 青色 %&#125;、&#123;% span blue, 蓝色 %&#125;、&#123;% span gray, 灰色 %&#125;。</span><br><span class="line"><span class="bullet">-</span> 超大号文字</span><br><span class="line">  文档「开始」页面中的标题部分就是超大号文字。</span><br><span class="line">  &#123;% span center logo large, Volantis %&#125;</span><br><span class="line">  &#123;% span center small, A Wonderful Theme for Hexo %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div><h2 id="行内文本样式-text"><a href="#行内文本样式-text" class="headerlink" title="行内文本样式 text"></a>行内文本样式 text</h2><div class="tabs" id="text"><ul class="nav-tabs"><button type="button" class="tab " data-href="text-1">标签语法</button><button type="button" class="tab  active" data-href="text-2">样式预览</button><button type="button" class="tab " data-href="text-3">示例源码</button></ul><div class="tab-contents"><div class="tab-item-content" id="text-1"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">&#123;% u 文本内容 %&#125;</span><br><span class="line">&#123;% emp 文本内容 %&#125;</span><br><span class="line">&#123;% wavy 文本内容 %&#125;</span><br><span class="line">&#123;% del 文本内容 %&#125;</span><br><span class="line">&#123;% kbd 文本内容 %&#125;</span><br><span class="line">&#123;% psw 文本内容 %&#125;</span><br></pre></td></tr></table></figure></div><div class="tab-item-content active" id="text-2"><ol><li>带 <u>下划线</u> 的文本</li><li>带 <emp>着重号</emp> 的文本</li><li>带 <wavy>波浪线</wavy> 的文本</li><li>带 <del>删除线</del> 的文本</li><li>键盘样式的文本 <kbd>command</kbd> + <kbd>D</kbd></li><li>密码样式的文本：<psw>这里没有验证码</psw></li></ol></div><div class="tab-item-content" id="text-3"><figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="bullet">1.</span> 带 &#123;% u 下划线 %&#125; 的文本</span><br><span class="line"><span class="bullet">2.</span> 带 &#123;% emp 着重号 %&#125; 的文本</span><br><span class="line"><span class="bullet">3.</span> 带 &#123;% wavy 波浪线 %&#125; 的文本</span><br><span class="line"><span class="bullet">4.</span> 带 &#123;% del 删除线 %&#125; 的文本</span><br><span class="line"><span class="bullet">5.</span> 键盘样式的文本 &#123;% kbd command %&#125; + &#123;% kbd D %&#125;</span><br><span class="line"><span class="bullet">6.</span> 密码样式的文本：&#123;% psw 这里没有验证码 %&#125;</span><br></pre></td></tr></table></figure></div></div><div class="tab-to-top"><button type="button" aria-label="scroll to top"><i class="anzhiyufont anzhiyu-icon-arrow-up"></i></button></div></div>]]></content>
    
    
    <summary type="html">添加大量外挂标签样式。</summary>
    
    
    
    <category term="其他" scheme="https://blog.mxne.cn/categories/%E5%85%B6%E4%BB%96/"/>
    
    
    <category term="Tag Plugins" scheme="https://blog.mxne.cn/tags/Tag-Plugins/"/>
    
    <category term="Hexo" scheme="https://blog.mxne.cn/tags/Hexo/"/>
    
  </entry>
  
  <entry>
    <title>汉诺塔</title>
    <link href="https://blog.mxne.cn/posts/f4bf.html"/>
    <id>https://blog.mxne.cn/posts/f4bf.html</id>
    <published>2023-05-28T04:49:00.000Z</published>
    <updated>2023-05-28T05:25:36.000Z</updated>
    
    <content type="html"><![CDATA[<h3 id="什么是汉诺塔？"><a href="#什么是汉诺塔？" class="headerlink" title="什么是汉诺塔？"></a>什么是汉诺塔？</h3><p>汉诺塔问题源于印度传说，传说中一个庞大的印度寺庙里，有一个72英尺高的铜制塔，塔中有三个针，最下面一个放着64个盘子，盘子大小不同，大的在下面，小的在上面，且每个盘子都比下面的盘子小得多。僧人们按照预言的指示把铜盘的一个个不同大小的圆盘从第一个针上移至第三个针上，保持原有顺序装满第三个针。据说，完成最后一个移动后，寺庙就会毁灭，太阳就会消失。</p><p><strong>通俗的说</strong> 就是：有三根柱子，我们需要把第一个柱子的盘子全部移动到第三个柱子，有下面三个要求：</p><ol><li>每次只能移动一个盘子；</li><li>小盘子必须在大盘子上面；</li><li>在移动盘子时，不能把一个盘子放到比它小的盘子上。</li></ol><h3 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h3><p>先将前面n-1个盘子移动到辅助柱子上，再将第n个盘子移动到目标柱子上，最后将前面n-1个盘子移动到目标柱子上。</p><h3 id="代码实现-递归"><a href="#代码实现-递归" class="headerlink" title="代码实现(递归)"></a>代码实现(递归)</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">hanoi</span><span class="params">(<span class="type">int</span> n, <span class="type">char</span> a, <span class="type">char</span> b, <span class="type">char</span> c)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">if</span> (n == <span class="number">1</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%c --&gt; %c\n&quot;</span>, a, c);  <span class="comment">//只有1块的时候，直接从 a 移动到 c</span></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        hanoi(n - <span class="number">1</span>, a, c, b);  <span class="comment">//将 n - 1 块从 a 移到到 c，借助 b</span></span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%c --&gt; %c\n&quot;</span>, a, c); <span class="comment">//把 a 中剩下的那一块，移动到 c</span></span><br><span class="line">        hanoi(n - <span class="number">1</span>, b, a, c);  <span class="comment">//将 n - 1 块从 b 移动到 c，借助 a</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> n;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入盘子的个数：&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;n);</span><br><span class="line">    hanoi(n, <span class="string">&#x27;A&#x27;</span>, <span class="string">&#x27;B&#x27;</span>, <span class="string">&#x27;C&#x27;</span>);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h3 id=&quot;什么是汉诺塔？&quot;&gt;&lt;a href=&quot;#什么是汉诺塔？&quot; class=&quot;headerlink&quot; title=&quot;什么是汉诺塔？&quot;&gt;&lt;/a&gt;什么是汉诺塔？&lt;/h3&gt;&lt;p&gt;汉诺塔问题源于印度传说，传说中一个庞大的印度寺庙里，有一个72英尺高的铜制塔，塔中有三个针，最下面一</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="编程题" scheme="https://blog.mxne.cn/tags/%E7%BC%96%E7%A8%8B%E9%A2%98/"/>
    
  </entry>
  
  <entry>
    <title>免费申请讯飞星火大模型</title>
    <link href="https://blog.mxne.cn/posts/47e6.html"/>
    <id>https://blog.mxne.cn/posts/47e6.html</id>
    <published>2023-05-27T04:38:09.000Z</published>
    <updated>2023-09-28T13:42:50.000Z</updated>
    
    <content type="html"><![CDATA[<h3 id="免费注册"><a href="#免费注册" class="headerlink" title="免费注册"></a>免费注册</h3><ol><li>进入 <a href="https://xinghuo.xfyun.cn/">https://xinghuo.xfyun.cn/</a><br><img src="https://bu.dusays.com/2023/05/27/64718e1fa496e.webp" alt="xfxh1"></li><li>填写手机号登录<br><img src="https://bu.dusays.com/2023/05/27/64718e1fa47fb.webp" alt="xfxh2"></li><li>填写问卷</li><li>等待消息（会给你发送信息，我等了大概三四天吧）</li></ol><h3 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h3><p><img src="https://bu.dusays.com/2023/05/27/64718e1fa4961.webp" alt="xfxh3"></p><p>还是挺不错的。有兴趣的可以试一试，挺简单的。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h3 id=&quot;免费注册&quot;&gt;&lt;a href=&quot;#免费注册&quot; class=&quot;headerlink&quot; title=&quot;免费注册&quot;&gt;&lt;/a&gt;免费注册&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;进入 &lt;a href=&quot;https://xinghuo.xfyun.cn/&quot;&gt;https://xinghuo.x</summary>
      
    
    
    
    <category term="其他" scheme="https://blog.mxne.cn/categories/%E5%85%B6%E4%BB%96/"/>
    
    
    <category term="日常" scheme="https://blog.mxne.cn/tags/%E6%97%A5%E5%B8%B8/"/>
    
  </entry>
  
  <entry>
    <title>归并排序</title>
    <link href="https://blog.mxne.cn/posts/f8df.html"/>
    <id>https://blog.mxne.cn/posts/f8df.html</id>
    <published>2023-05-26T11:32:02.000Z</published>
    <updated>2023-09-28T13:17:28.000Z</updated>
    
    <content type="html"><![CDATA[<h3 id="什么是归并排序？"><a href="#什么是归并排序？" class="headerlink" title="什么是归并排序？"></a>什么是归并排序？</h3><p>归并排序分为两步：</p><ol><li><strong>拆分</strong>：将待排序的数组递归地拆分成两个子数组，直到每个子数组只包含一个元素为止。这可以通过不断将数组拆分成左右两半来实现。</li><li><strong>合并</strong>：将拆分后的子数组两两合并，合并的同时进行排序，得到更大的已排序子数组，直到最终将所有子数组合并成一个完整的有序数组。合并操作会将两个有序的子数组合并成一个有序的大数组。</li></ol><p><img src="https://bu.dusays.com/2023/05/27/64717851a3a1e.gif" alt="mergeSort"></p><h3 id="代码实现"><a href="#代码实现" class="headerlink" title="代码实现"></a>代码实现</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdlib.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">merge</span><span class="params">(<span class="type">int</span> arr[], <span class="type">int</span> start, <span class="type">int</span> mid, <span class="type">int</span> end)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span>* temp = (<span class="type">int</span>*)<span class="built_in">malloc</span>((end - start + <span class="number">1</span>) * <span class="keyword">sizeof</span>(<span class="type">int</span>)); <span class="comment">// 开辟动态内存，来存储临时数组</span></span><br><span class="line">    <span class="keyword">if</span> (temp == <span class="literal">NULL</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;Failed to allocate memory for temp array!&quot;</span>);</span><br><span class="line">        <span class="keyword">return</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="type">int</span> k = <span class="number">0</span>; <span class="comment">// 临时数组下标</span></span><br><span class="line">    <span class="type">int</span> i = start; <span class="comment">// 左子序列起始位置</span></span><br><span class="line">    <span class="type">int</span> j = mid + <span class="number">1</span>; <span class="comment">// 右子序列起始位置</span></span><br><span class="line">    <span class="keyword">while</span> (i &lt;= mid &amp;&amp; j &lt;= end) <span class="comment">// 将两个子序列合并成一个有序的序列</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (arr[i] &lt; arr[j])</span><br><span class="line">        &#123;</span><br><span class="line">            temp[k++] = arr[i++];</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">else</span></span><br><span class="line">        &#123;</span><br><span class="line">            temp[k++] = arr[j++];</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">while</span> (i &lt;= mid) <span class="comment">// 将左序列剩余部分拷贝进 temp  【i, mid】</span></span><br><span class="line">    &#123;</span><br><span class="line">        temp[k++] = arr[i++];</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">while</span> (j &lt;= end) <span class="comment">// 将右序列剩余部分拷贝进 temp  【j, end】</span></span><br><span class="line">    &#123;</span><br><span class="line">        temp[k++] = arr[j++];</span><br><span class="line">    &#125;</span><br><span class="line">    k = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">while</span> (start &lt;= end) <span class="comment">// 将 temp 中存储的有序序列从 start 处开始，按照顺序放回原数组</span></span><br><span class="line">    &#123;</span><br><span class="line">        arr[start++] = temp[k++];</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">free</span>(temp);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">merge_sort</span><span class="params">(<span class="type">int</span> arr[], <span class="type">int</span> start, <span class="type">int</span> end)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">if</span> (start &lt; end) <span class="comment">// 终止条件：区间内只有一个元素</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="type">int</span> mid = (start + end) / <span class="number">2</span>; <span class="comment">// 分割数组，将其递归分成两个子序列进行排序</span></span><br><span class="line">        merge_sort(arr, start, mid);</span><br><span class="line">        merge_sort(arr, mid + <span class="number">1</span>, end);</span><br><span class="line">        merge(arr, start, mid, end); <span class="comment">// 将两个有序子序列合并</span></span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[] = &#123; <span class="number">10</span>,<span class="number">9</span>,<span class="number">8</span>,<span class="number">7</span>,<span class="number">6</span>,<span class="number">5</span>,<span class="number">4</span>,<span class="number">3</span>,<span class="number">2</span>,<span class="number">1</span> &#125;;</span><br><span class="line">    <span class="type">int</span> sz = <span class="keyword">sizeof</span>(arr) / <span class="keyword">sizeof</span>(arr[<span class="number">0</span>]);</span><br><span class="line">    <span class="type">int</span> start = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> end = sz - <span class="number">1</span>;</span><br><span class="line">    merge_sort(arr, start, end);</span><br><span class="line">    <span class="keyword">for</span> (<span class="type">int</span> i = <span class="number">0</span>; i &lt; sz; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%d &quot;</span>, arr[i]);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">输出：</span><br><span class="line"><span class="number">1</span> <span class="number">2</span> <span class="number">3</span> <span class="number">4</span> <span class="number">5</span> <span class="number">6</span> <span class="number">7</span> <span class="number">8</span> <span class="number">9</span> <span class="number">10</span></span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h3 id=&quot;什么是归并排序？&quot;&gt;&lt;a href=&quot;#什么是归并排序？&quot; class=&quot;headerlink&quot; title=&quot;什么是归并排序？&quot;&gt;&lt;/a&gt;什么是归并排序？&lt;/h3&gt;&lt;p&gt;归并排序分为两步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;拆分&lt;/strong&gt;：将待排</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="编程题" scheme="https://blog.mxne.cn/tags/%E7%BC%96%E7%A8%8B%E9%A2%98/"/>
    
  </entry>
  
  <entry>
    <title>统计单词个数</title>
    <link href="https://blog.mxne.cn/posts/1b6d.html"/>
    <id>https://blog.mxne.cn/posts/1b6d.html</id>
    <published>2023-05-21T05:43:11.000Z</published>
    <updated>2023-05-28T05:28:08.000Z</updated>
    
    <content type="html"><![CDATA[<h3 id="思路"><a href="#思路" class="headerlink" title="思路"></a>思路</h3><p>遍历整个字符串，当遇到空格时将word变量置为0，表示当前不处于一个单词中；当遇到非空格字符且word变量为0时，将word变量置为1，并将count变量加1，表示开始了一个新的单词。</p><h3 id="代码实现"><a href="#代码实现" class="headerlink" title="代码实现"></a>代码实现</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span> &#123;</span><br><span class="line">    <span class="type">char</span> str[<span class="number">100</span>];</span><br><span class="line">    gets(str);     <span class="comment">//不可以使用scanf，scanf遇到空格就结束，gets遇到回车结束</span></span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> word = <span class="number">0</span>;  <span class="comment">// 标记是否处于一个单词中，0表示不是，1表示是</span></span><br><span class="line">    <span class="type">int</span> count = <span class="number">0</span>; <span class="comment">// 记录单词数目</span></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; str[i] != <span class="string">&#x27;\0&#x27;</span>; i++) </span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">if</span> (str[i] == <span class="string">&#x27; &#x27;</span>) <span class="comment">// 如果遇到空格，将word置为0，表示当前不处于一个单词中</span></span><br><span class="line">        &#123; </span><br><span class="line">            word = <span class="number">0</span>; </span><br><span class="line">        &#125; <span class="keyword">else</span> <span class="keyword">if</span> (word == <span class="number">0</span>) <span class="comment">// 如果遇到非空格字符且不在一个单词中，将word置为1，表示当前开始了一个新的单词，并且将单词数目加1</span></span><br><span class="line">        &#123; </span><br><span class="line">            word = <span class="number">1</span>; </span><br><span class="line">            count++; </span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;word = %d.&quot;</span>, count); </span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h3 id=&quot;思路&quot;&gt;&lt;a href=&quot;#思路&quot; class=&quot;headerlink&quot; title=&quot;思路&quot;&gt;&lt;/a&gt;思路&lt;/h3&gt;&lt;p&gt;遍历整个字符串，当遇到空格时将word变量置为0，表示当前不处于一个单词中；当遇到非空格字符且word变量为0时，将word变量置为1，并将</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="编程题" scheme="https://blog.mxne.cn/tags/%E7%BC%96%E7%A8%8B%E9%A2%98/"/>
    
  </entry>
  
  <entry>
    <title>C语言-通讯录</title>
    <link href="https://blog.mxne.cn/posts/cf18.html"/>
    <id>https://blog.mxne.cn/posts/cf18.html</id>
    <published>2023-05-21T04:57:02.000Z</published>
    <updated>2023-05-21T05:19:24.000Z</updated>
    
    <content type="html"><![CDATA[<h3 id="contach-h"><a href="#contach-h" class="headerlink" title="contach.h"></a>contach.h</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">pragma</span> once</span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;string.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdlib.h&gt;</span></span></span><br><span class="line"></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> MAX_NAME 20</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> MAX_SEX 10</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> MAX_TELE 12</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> MAX_ADDR 30</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> MAX 100</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> DEFAULT_SZ 3</span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> INC_SZ 2</span></span><br><span class="line"></span><br><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> <span class="title">PeoInfo</span> &#123;</span></span><br><span class="line">    <span class="type">char</span> name[MAX_NAME];</span><br><span class="line">    <span class="type">char</span> sex[MAX_SEX];</span><br><span class="line">    <span class="type">int</span> age;</span><br><span class="line">    <span class="type">char</span> tele[MAX_TELE];</span><br><span class="line">    <span class="type">char</span> addr[MAX_ADDR];</span><br><span class="line">&#125; PeoInfo;</span><br><span class="line"></span><br><span class="line"><span class="comment">// 1.0 版本</span></span><br><span class="line"><span class="comment">// typedef struct Contact &#123;</span></span><br><span class="line"><span class="comment">//     PeoInfo data[MAX];  // 通讯录</span></span><br><span class="line"><span class="comment">//     int sz;  // 通讯录中有效数据个数</span></span><br><span class="line"><span class="comment">// &#125; Contact;</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 2.0 版本</span></span><br><span class="line"><span class="keyword">typedef</span> <span class="class"><span class="keyword">struct</span> <span class="title">Contact</span> &#123;</span></span><br><span class="line">    PeoInfo* data;  <span class="comment">// 指向动态申请的空间</span></span><br><span class="line">    <span class="type">int</span> sz;  <span class="comment">// 通讯录中有效数据个数</span></span><br><span class="line">    <span class="type">int</span> capacity;  <span class="comment">// 记录当前通讯录的最大容量</span></span><br><span class="line">&#125; Contact;</span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">InitContact</span><span class="params">(Contact* pc)</span>;  <span class="comment">// 初始化通讯录</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">AddContact</span><span class="params">(Contact* pc)</span>;  <span class="comment">// 增加联系人</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">PrinContact</span><span class="params">(<span class="type">const</span> Contact* pc)</span>;  <span class="comment">// 打印联系人</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">DelContact</span><span class="params">(Contact* pc)</span>;  <span class="comment">// 删除联系人</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">SearchContact</span><span class="params">(Contact* pc)</span>;  <span class="comment">// 搜索联系人</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">ModifyContact</span><span class="params">(Contact* pc)</span>;  <span class="comment">// 修改联系人信息</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">DestoryContact</span><span class="params">(Contact* pc)</span>;</span><br><span class="line"><span class="type">void</span> <span class="title function_">SortContactByName</span><span class="params">(Contact* pc)</span>;</span><br></pre></td></tr></table></figure><h3 id="contact-c"><a href="#contact-c" class="headerlink" title="contact.c"></a>contact.c</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> _CRT_SECURE_NO_WARNINGS 1</span></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;contact.h&quot;</span></span></span><br><span class="line"> </span><br><span class="line"><span class="comment">// 1.0 版本 InitContact</span></span><br><span class="line"><span class="comment">/*</span></span><br><span class="line"><span class="comment">void InitContact(Contact* pc)</span></span><br><span class="line"><span class="comment">&#123;</span></span><br><span class="line"><span class="comment">    pc-&gt;sz = 0;</span></span><br><span class="line"><span class="comment">    memset(pc-&gt;data, 0, sizeof(pc-&gt;data));</span></span><br><span class="line"><span class="comment">&#125;</span></span><br><span class="line"><span class="comment">*/</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 2.0 版本 InitContact</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">InitContact</span><span class="params">(Contact* pc)</span></span><br><span class="line">&#123;</span><br><span class="line">    pc-&gt;data = (PeoInfo*)<span class="built_in">malloc</span>(<span class="keyword">sizeof</span>(PeoInfo)*DEFAULT_SZ);</span><br><span class="line">    <span class="keyword">if</span> (pc-&gt;data == <span class="literal">NULL</span>) &#123;</span><br><span class="line">        perror(<span class="string">&quot;InitContact&quot;</span>);</span><br><span class="line">        <span class="keyword">return</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    pc-&gt;sz = <span class="number">0</span>;</span><br><span class="line">    pc-&gt;capacity = DEFAULT_SZ;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment">// 1.0 版本 AddContact</span></span><br><span class="line"><span class="comment">/*</span></span><br><span class="line"><span class="comment">void AddContact(Contact* pc)</span></span><br><span class="line"><span class="comment">&#123;</span></span><br><span class="line"><span class="comment">    if (pc-&gt;sz == MAX) &#123;</span></span><br><span class="line"><span class="comment">        printf(&quot;满了\n&quot;);</span></span><br><span class="line"><span class="comment">        return;</span></span><br><span class="line"><span class="comment">    &#125;</span></span><br><span class="line"><span class="comment">    printf(&quot;请输入名字:&gt;&quot;);</span></span><br><span class="line"><span class="comment">    scanf(&quot;%s&quot;, pc-&gt;data[pc-&gt;sz].name);</span></span><br><span class="line"><span class="comment">    printf(&quot;请输入年龄:&gt;&quot;);</span></span><br><span class="line"><span class="comment">    scanf(&quot;%d&quot;, &amp;(pc-&gt;data[pc-&gt;sz].age));</span></span><br><span class="line"><span class="comment">    printf(&quot;请输入性别:&gt;&quot;);</span></span><br><span class="line"><span class="comment">    scanf(&quot;%s&quot;, pc-&gt;data[pc-&gt;sz].sex);</span></span><br><span class="line"><span class="comment">    printf(&quot;请输入电话:&gt;&quot;);</span></span><br><span class="line"><span class="comment">    scanf(&quot;%s&quot;, pc-&gt;data[pc-&gt;sz].tele);</span></span><br><span class="line"><span class="comment">    printf(&quot;请输入地址:&gt;&quot;);</span></span><br><span class="line"><span class="comment">    scanf(&quot;%s&quot;, pc-&gt;data[pc-&gt;sz].addr);</span></span><br><span class="line"><span class="comment">    pc-&gt;sz++;</span></span><br><span class="line"><span class="comment">    printf(&quot;添加成功！\n&quot;);</span></span><br><span class="line"><span class="comment">&#125;</span></span><br><span class="line"><span class="comment">*/</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 2.0 版本 AddContact</span></span><br><span class="line"><span class="type">void</span> <span class="title function_">AddContact</span><span class="params">(Contact* pc)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">if</span> (pc-&gt;sz == pc-&gt;capacity) &#123;</span><br><span class="line">        PeoInfo* ptr = (PeoInfo*)<span class="built_in">realloc</span>(pc-&gt;data, (pc-&gt;capacity + INC_SZ) * <span class="keyword">sizeof</span>(PeoInfo));</span><br><span class="line">        <span class="keyword">if</span> (ptr != <span class="literal">NULL</span>) &#123;</span><br><span class="line">            pc-&gt;data = ptr;</span><br><span class="line">            pc-&gt;capacity = pc-&gt;capacity + INC_SZ;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;开辟空间成功!\n&quot;</span>);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">else</span> &#123;</span><br><span class="line">            perror(<span class="string">&quot;AddContact&quot;</span>);</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;增加失败!\n&quot;</span>);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (pc-&gt;sz == MAX) &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;满了\n&quot;</span>);</span><br><span class="line">        <span class="keyword">return</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入名字:&gt;&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, pc-&gt;data[pc-&gt;sz].name);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入年龄:&gt;&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;(pc-&gt;data[pc-&gt;sz].age));</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入性别:&gt;&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, pc-&gt;data[pc-&gt;sz].sex);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入电话:&gt;&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, pc-&gt;data[pc-&gt;sz].tele);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入地址:&gt;&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, pc-&gt;data[pc-&gt;sz].addr);</span><br><span class="line">    pc-&gt;sz++;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;添加成功！\n&quot;</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">PrinContact</span><span class="params">(<span class="type">const</span> Contact* pc)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="comment">// 打印标题</span></span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;%-20s\t%-5s\t%-5s\t%-12s\t%-20s\n&quot;</span>,<span class="string">&quot;名字&quot;</span>,<span class="string">&quot;年龄&quot;</span>,<span class="string">&quot;性别&quot;</span>,<span class="string">&quot;电话&quot;</span>,<span class="string">&quot;地址&quot;</span>);</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; pc-&gt;sz; i++) &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%-20s\t%-5d\t%-5s\t%-12s\t%-20s\n&quot;</span>, pc-&gt;data[i].name, pc-&gt;data[i].age, pc-&gt;data[i].sex, pc-&gt;data[i].tele, pc-&gt;data[i].addr);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">static</span> <span class="type">int</span> <span class="title function_">FindByName</span><span class="params">(Contact* pc, <span class="type">char</span> name[])</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; pc-&gt;sz; i++) &#123;</span><br><span class="line">        <span class="keyword">if</span> (<span class="built_in">strcmp</span>(pc-&gt;data[i].name, name) == <span class="number">0</span>) &#123;</span><br><span class="line">            <span class="keyword">return</span> i;  <span class="comment">// 找到返回下标，也可以返回 sz</span></span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">return</span> <span class="number">-1</span>;  <span class="comment">// 没找到返回 -1</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">DelContact</span><span class="params">(Contact* pc)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> name[MAX_NAME];</span><br><span class="line">    <span class="keyword">if</span> (pc-&gt;sz == <span class="number">0</span>) &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;无人可删\n&quot;</span>);</span><br><span class="line">        <span class="keyword">return</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入要删除人的名字：&gt;&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, &amp;name);</span><br><span class="line">    <span class="type">int</span> pos = FindByName(pc,name);</span><br><span class="line">    <span class="keyword">if</span> (pos == <span class="number">-1</span>) &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;查无此人，无法删除\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = pos; i &lt; pc-&gt;sz - <span class="number">1</span>; i++) &#123;</span><br><span class="line">        pc-&gt;data[i] = pc-&gt;data[i + <span class="number">1</span>];</span><br><span class="line">    &#125;</span><br><span class="line">    pc-&gt;sz--;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;删除成功!\n&quot;</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">SearchContact</span><span class="params">(Contact* pc)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> name[MAX_NAME];</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入要查找人的名字：&gt;&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, name);</span><br><span class="line"></span><br><span class="line">    <span class="type">int</span> pos = FindByName(pc, name);</span><br><span class="line">    <span class="keyword">if</span> (pos == <span class="number">-1</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;查无此人\n&quot;</span>);</span><br><span class="line">        <span class="keyword">return</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%-20s\t%-5s\t%-5s\t%-12s\t%-20s\n&quot;</span>, <span class="string">&quot;名字&quot;</span>, <span class="string">&quot;年龄&quot;</span>, <span class="string">&quot;性别&quot;</span>, <span class="string">&quot;电话&quot;</span>, <span class="string">&quot;地址&quot;</span>);</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;%-20s\t%-5d\t%-5s\t%-12s\t%-20s\n&quot;</span>, pc-&gt;data[pos].name, pc-&gt;data[pos].age, pc-&gt;data[pos].sex, pc-&gt;data[pos].tele, pc-&gt;data[pos].addr);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">ModifyContact</span><span class="params">(Contact* pc)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">char</span> name[MAX_NAME];</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;请输入要修改人的名字：&gt;&quot;</span>);</span><br><span class="line">    <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, name);</span><br><span class="line"></span><br><span class="line">    <span class="type">int</span> pos = FindByName(pc, name);</span><br><span class="line">    <span class="keyword">if</span> (pos == <span class="number">-1</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;查无此人\n&quot;</span>);</span><br><span class="line">        <span class="keyword">return</span>;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;请输入名字:&gt;&quot;</span>);</span><br><span class="line">        <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, pc-&gt;data[pos].name);</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;请输入年龄:&gt;&quot;</span>);</span><br><span class="line">        <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;(pc-&gt;data[pos].age));</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;请输入性别:&gt;&quot;</span>);</span><br><span class="line">        <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, pc-&gt;data[pos].sex);</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;请输入电话:&gt;&quot;</span>);</span><br><span class="line">        <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, pc-&gt;data[pos].tele);</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;请输入地址:&gt;&quot;</span>);</span><br><span class="line">        <span class="built_in">scanf</span>(<span class="string">&quot;%s&quot;</span>, pc-&gt;data[pos].addr);</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;修改成功！\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">DestoryContact</span><span class="params">(Contact* pc)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="built_in">free</span>(pc-&gt;data);</span><br><span class="line">    pc-&gt;data = <span class="literal">NULL</span>;</span><br><span class="line">    pc-&gt;sz = <span class="number">0</span>;</span><br><span class="line">    pc-&gt;capacity = <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">SortContactByName</span><span class="params">(Contact* pc)</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="keyword">if</span> (pc-&gt;sz == <span class="number">0</span>)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;没有联系人，无法排序！\n&quot;</span>);</span><br><span class="line">        <span class="keyword">return</span>;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="type">int</span> i = <span class="number">0</span>;</span><br><span class="line">    <span class="type">int</span> j = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; pc-&gt;sz; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt; pc-&gt;sz - i - <span class="number">1</span>; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (<span class="built_in">strcmp</span>(pc-&gt;data[j].name, pc-&gt;data[j + <span class="number">1</span>].name) &gt; <span class="number">0</span>)</span><br><span class="line">            &#123;</span><br><span class="line">                PeoInfo tmp = pc-&gt;data[j];</span><br><span class="line">                pc-&gt;data[j] = pc-&gt;data[j + <span class="number">1</span>];</span><br><span class="line">                pc-&gt;data[j + <span class="number">1</span>] = tmp;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;排序成功!\n&quot;</span>);</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="test-c"><a href="#test-c" class="headerlink" title="test.c"></a>test.c</h3><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">define</span> _CRT_SECURE_NO_WARNINGS 1</span></span><br><span class="line"></span><br><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&quot;contact.h&quot;</span></span></span><br><span class="line"></span><br><span class="line"><span class="comment">//1.通讯录能存1000个人的信息：</span></span><br><span class="line"><span class="comment">//名字、年龄、性别、电话、地址</span></span><br><span class="line"><span class="comment">//2.增加功能</span></span><br><span class="line"><span class="comment">//3.删除功能</span></span><br><span class="line"><span class="comment">//4.修改信息</span></span><br><span class="line"><span class="comment">//5.查找信息</span></span><br><span class="line"><span class="comment">//6.排序信息</span></span><br><span class="line"></span><br><span class="line"><span class="type">void</span> <span class="title function_">menu</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;************************************\n&quot;</span>);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;******  1. add    2. del    ********\n&quot;</span>);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;******  3. search 4. modify ********\n&quot;</span>);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;******  5. sort   6. print  ********\n&quot;</span>);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;*******       0. exit       ********\n&quot;</span>);</span><br><span class="line">    <span class="built_in">printf</span>(<span class="string">&quot;************************************\n&quot;</span>);</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="class"><span class="keyword">enum</span> <span class="title">Option</span></span></span><br><span class="line"><span class="class">&#123;</span></span><br><span class="line">    EXIT,   <span class="comment">//0</span></span><br><span class="line">    ADD,    <span class="comment">//1</span></span><br><span class="line">    DEL,    <span class="comment">//2</span></span><br><span class="line">    SEARCH, <span class="comment">//3</span></span><br><span class="line">    MODIFY, <span class="comment">//4</span></span><br><span class="line">    SORT,   <span class="comment">//5</span></span><br><span class="line">    PRINT   <span class="comment">//6</span></span><br><span class="line">&#125;;</span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> input = <span class="number">0</span>;</span><br><span class="line">    Contact con; <span class="comment">// 创建通讯录</span></span><br><span class="line">    InitContact(&amp;con);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">do</span></span><br><span class="line">    &#123;</span><br><span class="line">        menu();</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;请选择：&quot;</span>);</span><br><span class="line">        <span class="built_in">scanf</span>(<span class="string">&quot;%d&quot;</span>, &amp;input);</span><br><span class="line">        <span class="keyword">switch</span> (input)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">case</span> ADD:</span><br><span class="line">                AddContact(&amp;con);</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            <span class="keyword">case</span> DEL:</span><br><span class="line">                DelContact(&amp;con);</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            <span class="keyword">case</span> SEARCH:</span><br><span class="line">                SearchContact(&amp;con);</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            <span class="keyword">case</span> MODIFY:</span><br><span class="line">                ModifyContact(&amp;con);</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            <span class="keyword">case</span> SORT:</span><br><span class="line">                SortContactByName(&amp;con);</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            <span class="keyword">case</span> PRINT:</span><br><span class="line">                PrinContact(&amp;con);</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            <span class="keyword">case</span> EXIT:</span><br><span class="line">                DestoryContact(&amp;con);</span><br><span class="line">                <span class="built_in">printf</span>(<span class="string">&quot;退出！&quot;</span>);</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">            <span class="keyword">default</span>:</span><br><span class="line">                <span class="built_in">printf</span>(<span class="string">&quot;选择错误！\n&quot;</span>);</span><br><span class="line">                <span class="keyword">break</span>;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">    &#125; <span class="keyword">while</span> (input);</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h3 id=&quot;contach-h&quot;&gt;&lt;a href=&quot;#contach-h&quot; class=&quot;headerlink&quot; title=&quot;contach.h&quot;&gt;&lt;/a&gt;contach.h&lt;/h3&gt;&lt;figure class=&quot;highlight c&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td cl</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="C语言小游戏" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80%E5%B0%8F%E6%B8%B8%E6%88%8F/"/>
    
  </entry>
  
  <entry>
    <title>C语言-杨辉三角</title>
    <link href="https://blog.mxne.cn/posts/e11.html"/>
    <id>https://blog.mxne.cn/posts/e11.html</id>
    <published>2023-05-19T10:13:31.000Z</published>
    <updated>2023-05-27T13:23:42.000Z</updated>
    
    <content type="html"><![CDATA[<h3 id="什么是杨辉三角？"><a href="#什么是杨辉三角？" class="headerlink" title="什么是杨辉三角？"></a>什么是杨辉三角？</h3><p>如下是一个6行的杨辉三角，每个数字等于上方两数字之和。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">      1</span><br><span class="line">     1 1</span><br><span class="line">    1 2 1</span><br><span class="line">   1 3 3 1</span><br><span class="line">  1 4 6 4 1</span><br><span class="line">1 5 10 10 5 1</span><br></pre></td></tr></table></figure><blockquote><p>注意：以下方法只是实现了杨辉右三角，如以下:</p></blockquote><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">1</span><br><span class="line">1 1</span><br><span class="line">1 2 1</span><br><span class="line">1 3 3 1</span><br><span class="line">1 4 6 4 1</span><br></pre></td></tr></table></figure><h3 id="方法一"><a href="#方法一" class="headerlink" title="方法一"></a>方法一</h3><p>使用二维数组存储整个杨辉三角</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> N 10   <span class="comment">// 定义杨辉三角的行数</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[N][N] = &#123; <span class="number">0</span> &#125;;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    </span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt;= i; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="keyword">if</span> (i == j || j == <span class="number">0</span>)  <span class="comment">// 如果是第一列或者对角线上的元素，则赋值为1</span></span><br><span class="line">            &#123;</span><br><span class="line">                arr[i][j] = <span class="number">1</span>;</span><br><span class="line">            &#125;</span><br><span class="line">            <span class="keyword">else</span>                   <span class="comment">// 否则，根据杨辉三角的规律，计算当前位置上方两个元素之和</span></span><br><span class="line">            &#123;</span><br><span class="line">                arr[i][j] = arr[i - <span class="number">1</span>][j] + arr[i - <span class="number">1</span>][j - <span class="number">1</span>];</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)  <span class="comment">// 输出杨辉三角</span></span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt;= i; j++)</span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%-3d &quot;</span>, arr[i][j]);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h4 id="详解"><a href="#详解" class="headerlink" title="详解"></a>详解</h4><blockquote><p>使用二维数组存储整个杨辉三角。在外层循环中，我们用变量 i 从 0 循环到 N-1，控制杨辉三角的行数；在内层循环中，我们用变量 j 从 0 循环到 i，控制杨辉三角每一行中元素的个数。<br>在计算杨辉三角的过程中，我们判断当前位置是否是第一列或者对角线上的元素，如果是则赋值为1，否则根据杨辉三角的规律，计算当前位置上方两个元素之和，并将结果赋给当前位置。最后，我们使用两重循环遍历整个数组并输出每个元素，使用%-3d格式化字符串来保证每个数字占据 3 个字符的宽度并且左对齐，最后换行。</p></blockquote><h3 id="方法二"><a href="#方法二" class="headerlink" title="方法二"></a>方法二</h3><p>使用一维数组存储每一行的元素</p><figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#<span class="keyword">include</span> <span class="string">&lt;stdio.h&gt;</span></span></span><br><span class="line"><span class="meta">#<span class="keyword">define</span> N 6 <span class="comment">// 杨辉三角的行数</span></span></span><br><span class="line"></span><br><span class="line"><span class="type">int</span> <span class="title function_">main</span><span class="params">()</span></span><br><span class="line">&#123;</span><br><span class="line">    <span class="type">int</span> arr[N] = &#123; <span class="number">0</span> &#125;;</span><br><span class="line">    arr[<span class="number">0</span>] = <span class="number">1</span>;</span><br><span class="line">    <span class="type">int</span> i, j;</span><br><span class="line">    </span><br><span class="line">    <span class="keyword">for</span> (i = <span class="number">0</span>; i &lt; N; i++)</span><br><span class="line">    &#123;</span><br><span class="line">        <span class="keyword">for</span> (j = i; j &gt;= <span class="number">1</span>; j--)        <span class="comment">// 每个元素的值等于它正上方的元素加左上角的元素之和</span></span><br><span class="line">        &#123;</span><br><span class="line">            arr[j] = arr[j] + arr[j - <span class="number">1</span>];  </span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">for</span> (j = <span class="number">0</span>; j &lt;= i; j++)     <span class="comment">// 输出当前行的所有元素</span></span><br><span class="line">        &#123;</span><br><span class="line">            <span class="built_in">printf</span>(<span class="string">&quot;%-4d&quot;</span>, arr[j]);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="built_in">printf</span>(<span class="string">&quot;\n&quot;</span>);</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">return</span> <span class="number">0</span>;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h4 id="详解："><a href="#详解：" class="headerlink" title="详解："></a>详解：</h4><blockquote><p>使用一维数组存储每一行的元素。外层循环遍历杨辉三角的每一行，内层循环分别计算当前行的元素值和输出当前行的所有元素。第二层循环计算当前行的元素值，对于每一行的第i个元素（i从0开始计数），它的值等于 arr[j] + arr[j-1]，其中j从i循环到1（左上角的元素），从而计算当前行的所有元素。</p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;h3 id=&quot;什么是杨辉三角？&quot;&gt;&lt;a href=&quot;#什么是杨辉三角？&quot; class=&quot;headerlink&quot; title=&quot;什么是杨辉三角？&quot;&gt;&lt;/a&gt;什么是杨辉三角？&lt;/h3&gt;&lt;p&gt;如下是一个6行的杨辉三角，每个数字等于上方两数字之和。&lt;/p&gt;
&lt;figure class=</summary>
      
    
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/categories/C%E8%AF%AD%E8%A8%80/"/>
    
    
    <category term="C语言" scheme="https://blog.mxne.cn/tags/C%E8%AF%AD%E8%A8%80/"/>
    
    <category term="编程题" scheme="https://blog.mxne.cn/tags/%E7%BC%96%E7%A8%8B%E9%A2%98/"/>
    
  </entry>
  
</feed>
