四、字符串、转移字符、注释 文章目录字符串转移字符注释字符串C语言中没有字符串数据类型,使用字符数组表示字符串在字符串的末尾隐藏了字符串的结束符\0strlen()函数遇到\0结束,\0之前的长度,需要引入cstring函数#include <stdio.h>#include <cstring> //c语言中没有字符串数据类型,使用字符数组表示字符串 int main(){ //将字符串""放入数组中时,在末尾添加一个\0 便是字符串的结束标志,隐藏在字符串的末尾 char st
三、变量与常量 文章目录变量常量变量定义变量: 变量类型 变量名;全局变量:定义在函数的外部,作用域是整个工程局部变量:定义在函数中,作用域整个函数全局变量与局部变量同名时,局部变量优先extern 声明外部符号,不是在本源文件#include <stdio.h>int main(){ int a; int b; //&地址符号 //scanf()是函数库中的输入函数 scanf("%d%d",&a,&b); int c = a + b; print
二、C语言的数据类型 文章目录C语言的数据类型为什么有这么多数据类型C语言的数据类型c语言没有字符串类型char 字符类型 1一个字节short 短整型 2个字节int 整型 4个字节long 长整型 4个或8个字节long long 更长整型 8个字节float 单精度整型 4个字节double 双精度整型 8个字节#include <stdio.h>int main(){ //字符类型 char a = 'a'; printf("%c",a);
使用数组实现线性表 文章目录线性表的定义数组通过数组实现线性表数组的特点线性表的操作代码线性表的定义数组集合:集合是指具有某种特定性质的具体的或抽象的对象汇总而成的集体通过数组实现线性表数组是内存中一段连续的存储空间,所以属于线性表的顺序存储结构,初始化一个数组、给定一个变量cll(current list length)代表线性表的长度数组的特点数组的性质决定了数组的添加和删除比较慢(给指定下标添加删除元素时,需要移动元素的位置,速度是0(n) )数组中元素的位置可以通过公式计算:Loc(a
LL1文法、LR(0)文法、SLR文法、LR(1)文法、LALR文法 文章目录自顶向下分析自底向上分析文法转换LL(1)文法S 文法ε产生式的使用非终结符的后继符号集产生式的可选集Q文法串首终结符集LL(1)文法SELECT集、FOLLOW集、FIRST集计算自顶向下分析自顶向下分析指的是最左推导,最右归约是最左推导的逆过程,在最左推导中,总是选择每个句型的最左非终结符进行替换自底向上分析自底向上分析指的是最右推导、最左归约是最右推导的逆过程,在最右推到中,总是选择每个句型的最右非终结符进行替换文法转换回溯问题直接左递归和间接左递归问题回溯是指
文法、自动机、语法树 文章目录文法字母表字母表上的乘法运算字母表上的幂运算字母表的正闭包运算字母表的克林闭包串串上的连接运算串上的幂运算文法乔姆斯基(Chomsky)于1956年建立了形式语言的描述,叫做文法,用来描述语言克林在研究神经细胞中,建立了自动机,自动机也可以描述语言1959年,乔姆斯基证明了文法与自动机的等价性,将文法分为四大类:0型、1型、2型和3型文法的定义G = ( VT, VN,P, S ),G是一个四元组V ~T~:终结符集合V~N~:非终结符集合P:产生集合式S:开始符号
中断及外部设备操作 文章目录移位指令例子标号移位指令逻辑左移 SHL OPR CNTmov al,01001000bshl al,1最高位给进位标志CF ,后面7位左移一位,最后一位补0循环左移 ROL OPR,CNT将最高位给进位CF,后面的向左移一位,最后一位是最高位逻辑右移 SHR OPR,CNT最低位移到进位CF中,其他向左移动,最高位补0循环右移 ROR OPR,CNT最低位给CF,其他向右移,最高位由最低位给算术左移 SAL OPR,CNT最高位给
流程转移与子程序 文章目录转移用操作符offset取得标号的偏移指令jmp指令近转移和短转移远转移转移到寄存器的jmp指令转移地址在内存中的imp指令jcxz指令转移可以控制CPU执行内存中某处代码的指令可以修改IP,或同时修改CS和IP的指令按转移行为段内转移:只修改IP,如jmp ax段间转移:同时修改CS和IP,如jmp 1000:0000根据指令对IP修改的范围不同段内短转移:IP修改范围为-128~127 (一个字节)段内近转移:IP修改范围为-32768~32767 (一个字)
字母表与串的集合运算 文章目录字母表字母表上的乘法运算字母表上的幂运算字母表的正闭包运算字母表的克林闭包串串上的连接运算串上的幂运算字母表字母表∑\sum∑是一个有穷符号集合(符号:字母、数字、标点符号)字母表上的乘法运算∑\sum∑1∑\sum∑2 = {ab | a ∈\in∈ ∑\sum∑1, b ∈\in∈ ∑\sum∑2}例子:{0,1} {a,b} = {0a,0b,1a,1b}字母表上的幂运算∑\sum∑0 = { ϵ\epsilonϵ } (ϵ\epsilonϵ 是空的意思)∑\sum∑n =
内存寻址方式 文章目录处理字符问题[ibx+idata]方式寻址SI 和 DI寄存器[bx+si]和[bx+di]寻址方式[bx+si+idata]和[bx+di+idata]寻址方式dup功能和用法处理字符问题例子:大小写字母转换?大写字母的ASCII 的值+20H是小写字母,十进制是32 通过ASCII 码表可以观察出来小写字母转大写字母使用与运算 and 1101 1111 (是规定的,只要求小写转大写就用这个)b 62H 0110 0010BB 42H 0100 0010
认识图形学 文章目录图形学能干什么流水线中的三个阶段OpenGLGLSL图形学能干什么游戏VR可视化电影…流水线中的三个阶段应用阶段几何阶段光栅化阶段OpenGLOpenGL是开放图形库,是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API),另一种程序接口系统是仅用于Microsoft Windows上的Direct3D,OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发GLSLOpenGL的着色器语言是GLSL,也就是OpenGL shad
编译原理概述 文章目录翻译、解释、编译程序编译原理的模块总结翻译、解释、编译程序翻译程序:将一种语言描述的程序翻译为另一种语言描述的程序解释程序:一边解释一边执行的翻译程序编译程序:将源程序转为机器语言程序或汇编语言的程序叫做编译程序编译原理的模块分析:词法分析器输入:源程序输出:单词语法分析器输入:单词串输出:语法成分语义分析器综合:代码生成器代码优化目标代码生成辅助:符号功能表出错处理总结了解编译器组成的结构...
编写汇编源程序 文章目录编写汇编程序debug执行流程[] 和 ()loop 指令将数据、代码、栈放入不同段编写汇编程序定义段段开始汇编指令段结束程序结束debug补充:-p 是继续执行命令显示结果,类似t命令 -g 运行命令,从指定地址执行,直到遇到断点或程序正常结束执行流程.asm(编译)——>.obj(连接)——>可执行文件[] 和 ()[] 表示一个内存单元(汇编规定)() 表示一个内存单元或寄存器中的内容(学习方便规定)inc 是+1指令
修改CS、IP的指令与jmp指令 文章目录CS:IPjmp(转移指令)CS:IP也就是段地址:偏移地址事实:执行何处的指令,取决于CS:IP改变CS、IP的值jmp(转移指令) jmp 段地址:偏移地址
(五)确定物理地址的方法和内存分段表示 文章目录物理地址问题引入段地址和偏移地址构成物理地址段地址偏移地址物理地址cpu访问内存单元时,要给出内存的地址才能访问8086的地址总线有20根,他的寻址空间大小220=1M8086的寄存器只有16位,运算器一次也最多处理16位的数据,所以对地址的运算也只能是16位的,意味着寻址能力为216 = 64KB问题引入之前我们学过寻址空间的大小由数据总线决定,20位的数据总线的寻址空间应该为1M,如果使用2^16^ = 64KB,就造成了浪费段地址和偏移地址构成物理地址8080cpu
(四) 寄存器 文章目录寄存器(8086)AX、AL寄存器(8086)寄存器是cpu内部的信息存储单元通用寄存器:AX、BX、CX、DX变址寄存器:SI、DI指针寄存器:SP、BP指令指针寄存器:IP段寄存器:CS、SS、DS、ES标志寄存器:PSW8086的寄存器都是16位的,也就是两个字节AX、AL因为8088的寄存器是8个直接的,为了兼容它,把8086的寄存器的16位分为两个寄存器使用AX 可以看作 AH、ALAH 代表AX 的高八位、AL 代表AX 的低八
加减法运算和溢出 文章目录补码加减法运算补码加法溢出补码加减法运算 计算机中一般采用补码进行加减法操作,减法可以写成加法进行运算补码加法提示:正数的原码、反码、补码相同,负数的原码就是将符号位改为1,求反码就是取反,反码+1就是补码溢出两个正数相加,结果大于机器字长所能表示的最大正数,称为正溢,两个负数相加,结果小于机器所能表示的最小负数,称为负溢第一种:了解第二种:单符号位法V = Cf ⊕ C0 (Cf 指的是符号位产生进位,C0 指的是最高位产生进位)当最高有效位产生溢出而符号
算术逻辑运算单元ALU的串行和并行加法器 文章目录串行加法器全加器真值表补码加法运算串行全加器图表达式并行加法器表达式并行加法器并行加法器逻辑电路图CLA加法器串行加法器FA指的是加法器全加器真值表Si = AI ⊕ Bi (⊕ 代表异或运算)Ci+1 = AIBI + BIC! + CIAI = AIBi + (AI ⊕ BI) (AIBI 代表与运算)补码加法运算对照上面的表串行全加器图引入问题:当加法运算个数太多时,下一位的全加器必须等待上一位的全加器的进位信息C,才能进行接下来的运算,这种串行加法器的设计
(二) 数据结构与算法关系 文章目录数据结构与算法关系算法的定义算法的特性算法的设计要求算法的度量方法函数的渐近增长数据结构与算法关系数据结构是算法的一部分,我们可以通过设计数据结构比较算法的好坏算法的定义解决特定问题的求解步骤的描述,在计算机中表现为指令的有限序列,并且一条指令表示一条或多条操作(这是大话数据结构的定义)一系列解决问题的的明确指令,也就是说,对于符合一定规范的输入,能够在有限的时间内获得要求的输出(算法设计与分析基础的定义)抽象一下:解决问题、指令、一定规范输入、有限时间、要求的输出,
(二)计算机组成、存储单元、总线 文章目录计算机的组成指令和数据的表示计算机中的存储单元计算机的总线CPU对存储器的读写内存地址空间计算机的组成计算机的五大组成部件:运算器、控制器、存储器、输入设备、输出设备主板有:CPU总线内存条扩展槽指令和数据的表示计算机中指令和数据,存储在内存条或磁盘上(磁盘一般保存永久性数据)指令和数据都是二进制信息数据如何表示1000 1001 1101 1000B (二进制)89D8H (十六进制)104730O (八进制)35288D
(一)为什么学汇编语言 文章目录为什么要学习汇编语言学什么学习方法机器语言与机器指令汇编语言与汇编指令为什么要学习汇编语言汇编的运行效率非常快(快于高级语言)开发的效率低(多用于底层开如发操作系统内核、嵌入式系统:加用电器、物联网…)加深对计算机原理和操作系统等课程的理解学会底层的程序调试和错误分析方法学什么8086、8088指令系统与汇编语言程序设计 别的指令集系统 80x86、linux、arm学习方法贯穿实践的方法学会观察机器的内部状态机器语言与机器指令机器语言是机器指
伪代码 文章目录伪代码优点:语法规则变量声明指令的表示表达式赋值语句goto语句分支结构循环结构程序的结束注释风格函数的编写实例伪代码定义: 伪代码介于自然语言和编程语言之间,是一种描述算法的语言优点:提高了代码的可读性充当了程序与算法或流程图之间的桥梁,也可当作粗略的文档可以让程序员更好的构建代码语法规则每条指令占一行(esle if除外),指令后不跟任何符号缩进表示程序中的分支程序结构变量声明定义变量的语句不用写出来,但必须在注释中给出a <- 5 //这里的a
(五)队列 文章目录队列顺序队列循环队列队列定义:队列是一种特殊的线性表,只能在队头进行删除操作,在队尾进行插入操作,是一种受限制的线性表先进先出原则存储方式分为数组存储和链式存储顺序队列顺序队列需要一片连续的存储空间,并设置两个指针进行管理。一个是队头指针front,它指向队头元素;另一个是队尾指针rear当队头等于队尾相等时,队列为空队列插入元素,队尾加1。队列删除,队头加1 现象:会出现删除的空间不能用的情况,就像c图0空间不能用了,为了实现空间能够循环使用我们提出了循
(二)定点数、浮点数、十进制数串、机器数、字符与字符串表示方法 文章目录数据数值数据的表示方法定点数的表示方法浮点数的表示方法例子数据数值数据的表示方法定点格式:计算机中所有数据的小数点位置是固定不变的,数值范围有限浮点格式:小数点的位置随阶码的位置同步而浮动定点数的表示方法数受字长限制,表示数的范围有限多用定点纯数表示整数,也称整数运算 假定用 n+1(0-n) 来表示一个定点数x,看图x为纯小数就约定了小数点位于Xn和Xnn-1之间,即符号位和量值之间,当除符号位之外,所有位数为0,最小值为0,当除符号位之外,所有位
(四)堆栈 文章目录堆栈引入中缀表达式前缀表达式后缀表达式中缀表达式转前缀表达式中缀表达式转后缀表达式堆栈和线性表的区别堆栈定义:一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。堆栈是一种线性结构,也是特殊的一种线性表。引入堆栈的用途很广,例如函数调用、递归、计算表达式都需要用到堆栈,我们以表达式进行引入中缀表达式定义:一个通用的算术或逻辑公式表示方法。运算符在两个运算符之间。中缀表达式适合人的运算方法,不适用计算机前缀表达式定义:前缀表达式是一种
(三)广义表和多重链表 文章目录广义表广义表定义:广义表是一种非线性数据结构,它是线性表的一种推广,他放松了对元素原子(原子性指的是元素不可再分)的要求,允许它们拥有自身结构。特点:列表的元素可以是子表,子表的元素还可以是子表,广义表是可以嵌套的列表可以被其他列表共享列表可以是一个递归的表...
(二)线性表 文章目录数组链表数组和链表特点线性表数组定义:存储具有相同数据类型元素的集合。链表定义:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。链表还有多重链表,这里先不说多重链表数组和链表特点因为CPU缓存会读入一段连续的内存,顺序存储符合连续的内存,所以顺序存储可以
点和直线 文章目录bresenham算法推导公式bresenham算法学习bresenham算法是为了在计算机上面画直线,因为在计算机屏幕中只有像素点。定义:在迭代算法中,每一步的x,y的值由前一步的值加上一个增量来获得,我们称这种算法为bresenham算法推导给点两个坐标点我们可以得到直线方程式y=ax+b,有可以写成f(x) = y - kx -b = 0我们可以得到斜率k = y的增量/x的增量上面的图可以看出,理想的直线把平面图分为3各区域f(x,y)>0 在
(一)数据结构的定义 数据结构的定义提到数据结构,我们不得不想到算法,来看看什么是数据结构1.如何在书架上摆放图书?如何杂乱无章的放,书少还好,书多100000本,找私人)按拼音排序,通过书的首字母找书按区域分,在按字母分这里我们提出一个词,数据组织,通过不同的方式,把我们的书分类,查找起来是不是很容易2.打印1-N使用循环打印和使用递归打印。二者的区别在于,循环首先定义一个变量,然后不停改变变量的值,从而实现打印。递归就是不停的调用函数,之前的函数需要空间存储,当N的值过大时,计算机的内存不够,就会爆
(一)计算机组成、总线、存储单元、与位、字节、字、字长等 计算机系统概论计算机组成CPU处理器一般指中央处理器,中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。寄存器寄存器是由触发器组成,它们可用来暂存指令、数据和位址结论计算机cpu底层的操作非常复杂,计算机组成原理会针对cpu的做详细的介绍,让我们知道原理。...
艾宾浩斯遗忘曲线学习法 文章目录引入介绍艾宾浩斯遗忘曲线总结引入最近背单词,老是记不住,思考一下是什么原因。人的大脑不像电脑一样,可以保存所有的记忆,如果你学一个东西,今天记住了,丢下它,很多天再来看,你就会忘记。背单词更是如此,其实这个艾宾浩斯遗忘曲线学习法好像初中,就听说了,但是没放在心上,当自己真的想解决问题的时候,就会重新了解它。现在感觉它好像是一个习惯,越早养成越好,还是特别有用的。介绍遗忘曲线由德国心理学家艾宾浩斯(H.Ebbinghaus)研究发现,描述了人类大脑对新事物遗忘的规律。人体大脑对新事物遗忘的
c语言指针简解(*p、p、(*p)++、p++、++*p、数组遍历、字符串遍历 文章目录指针代码运行测试指针变量数组(指针数组: *p1[5]:存的是指针,数组指针: int (*p2)[5];存的是数据)字符串函数 这里没讲指针函数代码#include <stdio.h>#include <math.h>int main(void){ printf("------------变量-----------"); int x = 7;int *p = &x;//**q是二级指针,它的值必须是一级指
百钱买百鸡问题 引入我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?百钱买百鸡的问题算是一套非常经典的不定方程的问题,题目很简单:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。都是一个题分析每种鸡至少一个,钱加一起等于100,鸡子数量加起来等于100我们都知道,我们一般用穷值法,在fo
矩阵运算:读入 1 个正整数 n(1≤n≤6),再读入 n 阶方阵 a, 计算该矩阵除副对角线、 最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线 文章目录引入分析代码运行测试引入矩阵运算:读入 1 个正整数 n(1≤n≤6),再读入 n 阶方阵 a,计算该矩阵除副对角线、 最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。分析看到矩阵运算懵了,什么东西,网上只找到答案看不懂,我有倒推一波,这里就涉及到二维数组了,这里写一个二维数组与矩阵的对应关系二维数组可以看作一个坐标轴 int a[3][3]; 第一3代表矩阵的横坐标,就是3排,第二个3代表坐标轴,也就是3纵1 2 3 1的坐标就是a[0][
找出所有不是这两个数组共有的元素 文章目录引入代码运行测试引入找出不是两个数组共有的元素。输入一个正整数 n(1<n≤10),再输入 n 个整 数,存入第 1 个数组中;然后输入一个正整数 m(1<m<=10),再输入 m 个整数,存入第 2 个数组,找出所有不是这两个数组共有的元素。代码#include <stdio.h>int main(){ /** 找出不是两个数组共有的元素。输入一个正整数 n(1<n≤10),再输入 n 个整 数,存入第 1 个数组中; 然后输入一个正整数 m(1&l
使用函数输出一个整数的逆序数:输入一个整数,将它逆序输出。 要求定义并调用函数 reverse(number),它的功能是返回 number 的逆序数。 文章目录引入分析代码运行测试引入使用函数输出一个整数的逆序数:输入一个整数,将它逆序输出。要求定义并调用函数 reverse(number),它的功能是返回 number 的逆序数。例如,reverse(12345)的返回值是 54321。分析分析:找找规律 12345 54321 (需要有一个思想,一般我们获取每个位数上的数字通过%) 12345%10=5 12345/10=1234 5*0+5=51234%10=4 1234/10=123 5*10+4=54123%10=3 1
使用函数验证哥德巴赫猜想:任何一个不小于 6 的偶数均可表示为两个奇素数之和 文章目录引入分析代码运行测试引入使用函数验证哥德巴赫猜想:任何一个不小于 6 的偶数均可表示为两个奇素数之和。例 如 6=3+3,8=3+5,…,18=5+13。将 6~100 之间的偶数都表示成两个素数之和,打印时 一行打印 5 组。试编写相应程序。分析任何一个不小于 6 的偶数均可表示为两个奇素数之和。第一步:需要一个循环循环区间第二步:循环奇数,并且判断该奇数是否为素数,如果为素数求相加等于该偶数两个奇素数(可能是多个),并且每隔5个换行 我们可以把求是否为素数的函数独立出来
输出 m~n 之间所有的Fibonacci数 文章目录引入分析代码运行测试引入使用函数输出指定范围内的 Fibonacci 数:输入两个正整数 m 和 n(1<=m,n<=10000),输出 m~n 之间所有的Fibonacci数。 Fibonacci序列 (第 1 项起): 1 1 2 3 5 8 13 21…… 要求定义并调用函数 fib(n),它的功能是返回第 n 项 Fibonacci 数。例如,fib(7)的返回值 是 13分析从第三项起,前两项和等于下一项值fib(n)是求第某项的值代码//声明函数 int
使用函数输出指定范围内的函数:输入两个正整数 m 和 n,输出 m-n 之 间 的 所 有 完 数 文章目录引入分析代码运行测试引入使用函数输出指定范围内的函数:输入两个正整数 m 和 n(1<=m,n<=1000),输出 m~n 之 间 的 所 有 完 数 , 完 数 就 是 因 子 和 与 它 本 身 相 等 的 数 。 要 求 定 义 并 调 用 函 数 factorsum(number),它的功能是返回 number 的因子和。例如,factorsum(12)的返回值是 16 (1+2+3+4+6)分析factorsum(number)返回 number 的因子和,但是我认
c语言逗号运算符 引入设以下变量均为 int 类型,表达式的值不为 9 的是 CA. (x=y=8,x+y,x+1) B. (x=y=8,x+y,y+1) C. (x=8,x+1,y=8,x+y) D. (y=8,y+1,x=y,x+1)运算这个逗号运算符java里面还像没有,它的逗号是分割符。c有拿(x=y=8,x+y,x+1)他求的是最后一个逗号后的值为9在有的地方它不是当逗号运算符用,当分隔符用...
设字符型变量 x 的值是 064,表达式....的值是 文章目录引入分析进制转换~按位非运算符<<是左移运算符&按位与运算符^按位异或运算符、|按位或运算符解答第一步先算~x第二步x<< 2第三步208&x第四步-53^16坑点引入设字符型变量 x 的值是 064,表达式“~x^x<< 2&x”的值是: AA.0333 B.333 C.0x333 D.020分析我看到这个题,感觉考的很细,把不常用进制转换、运算符、优先级都考到了进制转换首先064代表的是8进制转换为十进制 4*8^0
高空坠球问题 文章目录引入分析代码运行测试引入高空坠球。皮球从 height(米)高度自由落下,触地后反弹到原高度的一半, 再落下,再反弹……如此反复。问皮球在第 n 次落地时,在空中一共经过多少距 离?第 n 次反弹的高度是多少?输出保留 1 位小数。试编写相应程序。分析分析:先我们需要一个高度、反弹的次数我们用假设法写一个例子找找规律,设置高度为10.0,弹了3次 次数 高度 距离 1 5 15 第一次的距离从10米落下有反弹了5米距离是15 2 2.5 22.5 第二
兔子繁衍问题(pat)斐波那契数列 文章目录引入分析斐波那契数列代码运行测试引入兔子繁衍问题。一对兔子,从出生后第 3 个月起每个月都生一对兔子。小兔 子长到第 3 个月后每个月又生一对兔子。假如兔子都不死,请问第 1 个月出生的 一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到 n 对?输入一个不超 过 10000 的正整数 n,输出兔子总数达到 n 最少需要的月数网上说:这个题有两个争议点(坑点),第一个点就是,是第三个月开始生兔子,还是第三个月后开始生兔子。第二个坑点是有的题目没有指名总数是达到n只还是n对正解:因为这个
求序列和:输入 2 个正整数 a 和 n,求 a+aa+aaa+aa…a(n 个 a)之和。例如, 输入 2 和 3,输出 246(2+22+222)。试编写相应程序 文章目录引入分析代码运行测试引入求序列和:输入 2 个正整数 a 和 n,求 a+aa+aaa+aa…a(n 个 a)之和。例如, 输入 2 和 3,输出 246(2+22+222)。试编写相应程序。分析编写一个函数求每项的值,把求和与每项的值分开写成函数。代码#include <stdio.h>//声明函数 int SumA(int a,int n);int fn(int a, int n);int main(void) { /** .求序列和:输入 2 个正整
求序列和:输入一个正整数 n,输出 2/1+3/2+5/3+8/5 +…的前 n 项之和, 保留 2 位小数。该序列从第 2 项起,每一项的分子是前一项分子与分母的和, 分母是前一项的分子 引入求序列和:输入一个正整数 n,输出 2/1+3/2+5/3+8/5 +…的前 n 项之和,保留 2 位小数。该序列从第 2 项起,每一项的分子是前一项分子与分母的和, 分母是前一项的分子分析求序列和就是找规律,该序列从第 2 项起,每一项的分子是前一项分子与分母的和, 分母是前一项的分子,同时需要注意类型转换问题代码#include <stdio.h>int main(void) { /** 求序列和:输入一个正整数 n,输出 2/1+3/2+5/3+8/5 +
打印菱形 文章目录引入分析代码运行测试引入菱形星号“”图案。输入一个正整数 n(n 为奇数),打印一个高度为 n 的 “”菱形图案。例如,当 n 为 7 时,打印出以下图案。试编写相应程序。分析第一个循环打印行数和换行第二个循环打印空格第三个循环打印星号,第二个循环和第三个循环是并列的我们需要注意一点:正三角形和反三角形的空格问题代码#include <stdio.h>int main(void) { /** 菱形星号“*”图案。输入一个正整数 n(n 为奇数),
展开式求和:输入 1 个实数 x,计算并输出下式的值,直到最后一项的绝对 值小于 0.00001,计算结果保留 2 位小数。要求定义和调用函数 fact(n)计算 n 的阶乘,可以调用 pow( ) 引入展开式求和:输入 1 个实数 x,计算并输出下式的值,直到最后一项的绝对 值小于 0.00001,计算结果保留 2 位小数。要求定义和调用函数 fact(n)计算 n 的阶乘,可以调用 pow( )函数求幂。试编写相应程序。 s=x+x²/2!+x³/3!+x4/4!+…分析fact()求阶层,需要注意返回值和自变量的初始化结束条件 item >= 1e-5item的值根据pow(x,i)/fact(i)求代码#include <stdio.h>#include &
求奇数和:输入一批正整数(以零或负数为结束标志),求其中的奇数和。试 编写相应程序 引入求奇数和:输入一批正整数(以零或负数为结束标志),求其中的奇数和。试 编写相应程序。分析需要一个循环输入数字,结束调解是输入负数,求奇数的和代码#include <stdio.h>int main(void) { /** 求奇数和:输入一批正整数(以零或负数为结束标志),求其中的奇数和。试 编写相应程序。 */ int n; double sum; //结果为0 // printf("%d",1/2); //结果为1 // printf
找出最小的值:输入一个正整数 n, 再输入 n 个整数,输出最小 值。试编写相应程序 引入找出最小的值:输入一个正整数 n, 再输入 n 个整数,输出最小 值。试编写相应程序。分析思考:之前我们都是在循环输入正整数,但是这里需要比较前后两个数的大小,怎么办?我们需要在循环之外先输入一个数设置为最小数,循环里面的<=要改为<,在与循环里面输入的数比较换值找出最小数代码#include <stdio.h> int main (){ /** 找出最小的值:输入一个正整数 n, 再输入 n 个整数,输出最小 值。试编写相应程序。 */ //
e = 1 + 1/1!+1/ 2!+1/ 3!+…+1/n!(数列求和) 文章目录引入分析代码测试引入求 e 的值:输入 1 个正整数 n,计算下式求出 e 的值(保留 2 位 小数),要求使用嵌套循环。试编写相应程序。e = 1 + 1/1!+1/ 2!+1/ 3!+…+1/n!分析几乎都是使用循环做的,我们需要做的就是找规律:这题有两层循环第一层是便利所有项,第二层循环是求阶层,内循环后需要在第一层循环中累加数列和代码#include <stdio.h>int main(){ /** 求 e 的值:输入 1 个正整数 n,计算下式求
猜数字游戏 文章目录引入分析代码测试引入猜数字游戏:先输入 2 个不超过 100 的正整数,分别是被猜数 mynumber 和允许猜测的最大次数 n,再输入你所猜的数 yournumber,与被猜数 mynumber 进行比较,若相等,显示猜中,;若不等,显示与被猜数的大小关系, 最多允许猜 n 次。如果 1 次就猜出该数,提示“Bingo!”;如果 3 次以内猜到该 数,则提示“Lucky You!” ;如果超过 3 次但不超过 n 次猜到该数,则提示“Good Guess!”;如果超过 n 次都没有猜到,则提示
求三角形面积 引入三角形判断:输入平面上任意三个点的坐标(x1,y1)、 (x2,y2)、 (x3,y3), 检验他们能否构成三角形。如果这 3 个点能构成一个三角形,输出周长和面积(保 留 2 位小数);否则,输出“Impossible”。试编写相应程序。分析公式一:已知三角形底a,高h,则 S = ah/2公式二:海伦公式,已知三角形三边a,b,c,则当然求三角形面积公式还有,其他的我们就不说了,可以去百度百科看看…写程序C#include <stdio.h>#include &l
三个数比较大小 引入比较大小:输入 3 个整数,按从小到大的顺序输出。试编写相应程序。分析怎么比较大小,常见的算法有冒泡、选择、排序 二分查找法,这些我们这里都不说,三个数比较大小用不到算法,用什么写呢?if、else或者if分析:就是找到三个数中最小的数,最比较另外两个数我第一次写这个题,用的是if、else写的,但是入了坑,看代码if、else#include <stdio.h>int main(){ /** 比较大小:输入 3 个整数,按从小到大的顺序输出。试编写相应程序
猴子吃桃问题 文章目录猴子吃桃问题c猴子吃桃问题猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃前一天剩下的一半零一个。到第12天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少个桃子?很明显12是随便给的,它是自定义的理解:第十二天:1个桃子第十一天:口算出来是4个桃子,变成公式就是 1+1x2第十天:口算出来是10个桃子,变成公式就是4+1x2…看的有点萌,我们转换一下,把第十二天看作第一天好理解:
素数统计及求和 素数素数百度百科:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。c# include <stdio.h>//声明该数是否是质数的函数int isPrime(int a); int main(){ /** 素数就是质数,一个大于1的数,除了它本身和 1之外,不能被其他自然数整除 统计素数并求和 我们给定一个区间 */ //获取输入的数 int a,b; scanf("%d%d",&a,
最大公约数、最小公倍数 文章目录最大公约数辗转相除法更相减损术穷举法最大公约数最大公约数百度百科最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。最小公倍数百度百科两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个
方程的整数解 方程的整数解c应该还可以做其他方面的优化,减少循环的次数吧# include <stdio.h>int main(){ /** 方程的整数解 方程:a^2+b^2=2009; 求有几组解集打印出来 */ //不难看出这是一个二元二次函数 //我们使用两次循环,第一层循环就是遍历其中一元a int a,b; for(a=1; a<(int)sqrt(2009); a++) { //第二层循环就是遍历另外一元b for(b=a+1;
乘法表 乘法表1x1=12x1=2 2x2=43x1=3 3x2=6 3x3=9....两个循环,一层是循环9行和换行,一层是打印乘法表和结束条件c# include <stdio.h>int main(){ /** 乘法表 1x1=1 2x1=2 2x2=4 3x1=3 3x2=6 3x3=9 .... */ //两层循环 //第一层循环行数和换行 int i,j; for(i=1; i<=9; i++) { //第二层循环打印每行乘法
金字塔(三角形) 金字塔c# include <stdio.h>int main(){ /** 打印金字塔 * *** ***** */ //以这个金字塔为例,思考我们需要几层循环,每层循环控制什么 int a,b,c; //第一层循环控制有多少行和换行,例如我们这个有三行 for(a=0; a<3; a++){ //第二层循环控制空格,空格数自定义,从上面我们可以看出下一层空格比上一层少一个 for(b=
Π和根据阈值和关系式求圆周率 Π上学学的东西都还给老师了,都忘了Π是什么了,怎么长得有点像n呢,怎么回事...Π百度百科Π,希腊字母。数学中常指代圆周率。圆周率,一般以π来表示,是一个在数学及物理学普遍存在的数学常数。它定义为圆形之周长与直径之比。它也等于圆形之面积与半径平方之比。是精确计算圆周长、圆面积、球体积等几何形状的关键值。我的理解:许多物理和数学公式都会用到,圆的直径我们可以直接使用尺子测出来,圆的周长我们可以滚动圆片测量周长(将圆片放在尺子滚动一圈就测量出圆的周长),绕绳法测量圆的周长(将绳绕圆一周),测量出来的
c语言基础 程序结构(实例)javaclass主方法public class A { int a = 2; public static void main(args[]) { System.out(a); }}类名和源文件的名必须一样c头文件主函数#include <stdio.h>int main() {printf("hello world!i am c");return 0;} cmd编译运行java和c都可以在cmd中运行从这里我们也可以看
cmd中运行java和c cmd编译运行java和c都可以在cmd中运行从这里我们也可以看出java的执行顺序,包括我们下载的jdk中就有javac.exe和java.exe就是用来编译和执行的#include <stdio.h>int main() {printf("hello world!");return 0;}在cmd中运行需要有环境才可以,最开始使用记事本写代码,真的能把人搞死,没有代码补全和提示语法错误,用了ide,就不想回到原始时代了,哈哈...
一、c语言简介及开发软件 开发工具在这里我想说一说ide(集成开发环境),集成了代码编辑器、编译器、调试器、等一体化的开发软件服务套。说白了,就是具有软件开发的一条龙服务dev-c++(界面很丑)vc(visual c++,比较老了)vscode(visual studio code,现在很多用这个,但是它只是代码编辑器,需要配很多东西,有坑)Hello world#include <stdio.h>int main() {printf("hello world!i am c");return 0
Error:(5, 43) java: 程序包org.springframework.data.redis.core不存在 springboot+springsecurity+jwt+redis集成的时候RediUtil报错网上有的人说是依赖版本问题,有的人说将@Autowired改为@Resource,都试了,但是没用,哪位大佬知道怎么回事?依赖 <!-- redis组件 --> <dependency> <groupId>org.springframework.boot</groupId> &l
springboot整合springsecurity+jwt 概述api响应JwtTokenUtils工具类SpringsecurityConfig配置handler(未登陆、未授权、登陆成功、登陆失败、登出)filter(token过滤、登陆过滤)最后还要集成redisapi响应枚举返回值这个是自定义的,可以自己修改,网上都是用枚举封装自定义的返回值信息ResultCodepackage com.common.code.common;public enum ResultCode { RESULT_CODE_SERVER_EXC
vue-admin-template入门详解(后端springboot+sprngsecurity+jwt+redis) 目录vscode插件clone 项目配置跨域后端接口前后端分离登陆前后端分离登陆二总结vscode插件clone 项目地址:https://github.com/PanJiaChen/vue-admin-template我们这里不讲vue-element-admin,讲的是vue-admin-template配置跨域跨域配置分为两种,一种是cors方式在 vue-config.js 配置 proxy 代理,另外一种是通过 nginx 配置反向代理,这里我们用第一种,第二
springsecurity前后端跨域和分离登陆问题 目录引入将springsecurity登陆转化为application/json自定义的登陆过滤器引入在后端获取用户名、密码不为null System.out.println(request.getParameter("username")); System.out.println(request.getParameter("password"));当我把它写入前端后端获取用户名、密码为null,不知道怎么搞的前端就是请求不成功了,postman测试的时
SpringBoot---WebMvcConfigurer详解 参考博客:https://blog.csdn.net/zhangpower1993/article/details/89016503?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog...
springboot+springsecurity+jwt整合之springsecurity三种鉴权表达式 目录springboot+springsecurity+jwt整合项目method鉴权表达式url 鉴权表达式web的rabc鉴权表达式不足springboot+springsecurity+jwt整合项目springboot+springsecurity+jwt整合:https://gitee.com/klzshow/springboot_springsecurity_jwtmetho...
springboot整合springsecurity+jwt+redis 依赖 <!-- springsecurity依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> ...
war反编译项目 引入今天心态砸了,重置电脑写的项目忘记保持了,只剩一个war包,????winrar打开war包jd-gui 反翻译软件gd-gui官网:https://jd-gui.apponic.com/当然,官网不一定能下载,可以网上搜一个,下载给了我一个教训,以后代码还是要放在gitee和github上呀!!!...
vue后台管理页面模板iview-admin、vue-element-admin 目录iveiwelement ui怎么选择iveiw最近想写一个后台管理页面,找了很久,找到两个vue的后台管理页面模板iview 变成了 view ui 也就是ivew的2.0版本iview 是vue.js的ui框架,iview-admin是后台管理页面模板iview-admin:https://github.com/PanJiaChen/vue-element-adminivi...
cdn、npm、webpack cdn做为一个java程序员,不会写前端也是不行的,今天我们来了解了解cdn、npmcdn:内容分发网络,一般会在写前端页面,通过js标签引入如引入jquery、npm、semantic、elementui等等,相当于把静态文件存在了服务器端,通过内容存储和分发技术,向调用者输入静态资源,没网或服务端挂掉了,那就凉了百度百科说:CDN的全称是Content Delivery Netwo...
Git t 常用命令 目录Git 仓库命令在当前目录新建一个Git代码库新建一个目录,将其初始化为Git代码库下载一个项目配置显示当前的Git配置编辑Git配置文件设置提交代码时的用户信息增加/删除文件添加指定文件到暂存区添加指定目录到暂存区,包括子目录添加当前目录的所有文件到暂存区对于同一个文件的多处变化,可以实现分次提交删除工作区文件,并且将这次删除放入暂存区停止追踪指定文件,但该文件会保留在工作区改名文件,并且将...
Git 仓库的创建、仓库的删除、idea中项目托管到gitee Gitee官网gitee又名马云,开个玩笑,它叫做码云,是代码托管的平台,主要有github和giteegitee官网:https://gitee.com/先注册一个账号主页创建仓库删除仓库idea中项目传入gitee提交之后...
Illegal DefaultValue null for parameter type integer 警告 可能是swagger的配置有问题我之前少了后面两个依赖<!-- swagger文档依赖--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</a...
安装软件总结 目录官网下载安装配置环境为什么要配置环境变量测试官网下载网上直接搜官网地址有的软件下载需要登陆账户(如 jdk、oracle),有的不需要直接下载就行了(eclipse、maven、tomcat、Git等等)在官网上找下载页面软件一般分为应用程序和压缩格式(.msi、.zip),当然对于不同操作系统的格式也会不同,一般来说,应用程序的好安装一点直接下载安装配置环境为什么要配置...
Node.js 安装教程(windows压缩版) 目录官网下载安装配置环境变量测试官网下载官网地址: https://nodejs.org/zh-cn/Node.js 和 JDK 是一样的,前者是前端开发需要的环境,后者是java开发要的环境自带各种语言的,把后面的 zh-cn 换为 en,就变成中文版的了安装npm是包管理器配置环境变量可以直接把安装目录配置在path里面,省去这个步骤npm config ...
eclipse 安装教程(windows版) 官网下载官网地址:https://www.eclipse.org/downloads/eclipse 是java开发的ide(集成开发环境),最早是IBM的,2001的时候把它捐给了非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理,所以它是开源免费的,而开发java的另外一个款优秀ide,idea 是收费的,当然它也提供了学习的版本,在学校中教java一...
vscode 安装教程(windows版) 目录官网下载安装官网下载官网地址:https://code.visualstudio.com/其实没什么好说的,很好安装安装这里我们就安装一个系统安装程序自定义安装目录...
Maven 安装教程(windows版) 官网下载官网地址:http://maven.apache.org/相信你也看见了,maven是apache 的 包括之前的 tomcat(雄猫)maven再一次解放了 java 程序员。它是用来构建和管理java项目的工具,其实主要就是创建和管理 jar包,并且多个项目可以共享jar包,在之前,再写老的javaweb 项目的时候,都是自己搜jar包,自己导入,并且多个项目不能共享jar...
Git 安装教程(windows版) 目录官网下载安装官网下载官网地址:https://git-scm.com/Git 是linux 创始人开发的,据说只用了10天 的时间,是用于代码版本控制的。而 码云与Github 是用于代码托管的。安装基本上应用程序安装都是傻瓜式的,注意一下就可以了看自己需求是否要更改目录...
redis 安装教程(windows压缩版)及redis-desktop-manager 目录redis 下载redis 安装以管理员身份打开命令提示符配置环境 redis 环境变量使用命令开启服务 并且客户交互节目使用执行程序开启服务 并且进入客户交互界面常见命令修改密码redis 下载官网地址:https://redis.io/如果你是使用 windows 安装redis 先不要下载,看完下文我们之前都是 mysql 是关系型数据库,但是现在mysql 也可以使用键值对...
idea 安装教程(windows版)修改编码格式 目录idea 官网下载安装idea 好处修改 idea 编码方式idea 官网下载idea 官网: https://www.jetbrains.com/idea/来看看介绍:IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn...
mysql8.0.19 安装(windows压缩版) mysql 下载mysql官网:https://www.mysql.com/MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。很多大厂用的都是它关于这个版本的问题还是要说一下的...
jdk8 安装教程(windows版) 目录jdk下载地址jdk 安装jdk 环境变量jdk下载地址https://www.oracle.com/java/technologies/javase-jdk8-downloads.html需要注册一个oracle账号,信息一填,随便注册一个就行了!jdk 安装注意:修改安装目录不要有中文jdk 环境变量JAVA_HOMEpath%JAVA_...
springmvc拦截器 目录拦截器简介过滤器与拦截器的区别过滤器拦截器自定义拦截器拦截器简介拦截器(Interceptor),主要完成请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验、程序异常调试等工作。SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。过滤器与拦截器的区别过滤器se...
ajax ajax 简介Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。jQuery ...