- 博客(21)
- 收藏
- 关注
原创 “21天好习惯”第一期-20
图的遍历图由顶点(Vertex)和边(Edge)组成,每条边的两端都必须是图的两个顶点,记号G(V,E)表示图G的顶点集为V,边集为E。图可以分为有向图和无向图,有向图的所有边都有方向,即确定了顶点到顶点的一个指向;无向图的所有边都是双向的,即无向边所连接的两个顶点可以互相到达。顶点的度是指和该顶点相连的边的条数,对有向图来说,顶点的出边条数称为该顶点的出度,顶点的入边条数称为该顶点的入度。顶点和边都可以有一定属性,而量化的属性称为权值,顶点的权值和边的权值分别称为点权和边权。图的存储方
2021-11-13 00:01:07 537
原创 “21天好习惯”第一期-19
将26个英文字母按顺时针方向排成一个圆环。密钥是一个整数。具体加密方法如下:若密钥key≥0,则从明文字母开始按顺时针方向走∣key∣步得到密文字母; 若密钥key<0,则从明文字母开始按逆时针方向走∣key∣步得到密文字母。请编写程序输入明文和密钥,输出密文。#include <stdio.h>int main(){ unsigned char c; int n; do { scanf("%c",&...
2021-11-13 00:00:56 1038
原创 “21天好习惯”第一期-21
图的遍历图由顶点(Vertex)和边(Edge)组成,每条边的两端都必须是图的两个顶点,记号G(V,E)表示图G的顶点集为V,边集为E。图可以分为有向图和无向图,有向图的所有边都有方向,即确定了顶点到顶点的一个指向;无向图的所有边都是双向的,即无向边所连接的两个顶点可以互相到达。顶点的度是指和该顶点相连的边的条数,对有向图来说,顶点的出边条数称为该顶点的出度,顶点的入边条数称为该顶点的入度。顶点和边都可以有一定属性,而量化的属性称为权值,顶点的权值和边的权值分别称为点权和边权。图的存储方
2021-11-13 00:00:43 682
原创 “21天好习惯第一期”-18
汉诺塔第一次移动,要把A柱子上的前n-1个移动到B柱子上;第二次移动,直接把A柱子上的最后一个移动到C柱子上;第三次移动,把B柱子上的n-1个柱子通过柱子A移动到柱子C上。同理整体上将汉诺塔分为两部分,依照上述式子进行移动,整体思想的循环套用。#include <stdio.h>#include <string.h>void move(char x, char y);void hannuo(int n,char one ,char two,char thre
2021-11-12 21:46:01 246
原创 “21天好习惯第一期”-17
三元运算符三元运算符也被称为条件运算符。该运算符有三个操作数,并且需要判断布尔表达式的值。主要是用来决定哪个值应该赋给变量。语法格式:布尔表达式 ? 表达式1:表达式2当布尔表达式的值为true时,则返回表达式1的值;当布尔表达式的值为false时,则返回表达式2的值说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2#include <stdio.h> int main() { int a = 10; int b = 5; int
2021-11-12 21:36:08 64
原创 “21天好习惯第一期”-16
枚举算法的思想:1,枚举算法的定义:在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么该结论是可靠 的,这种归纳方法叫做枚举法。2,枚举算法的思想是:将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,保留合适的,舍弃不合适的。3,使用枚举算法解题的基本思路如下:(1)确定枚举对象、范围和判定条件。(2)逐一枚举可能的解并验证每个解是否是问题的解。4,枚举算法步骤:(1)确定解题的可能范围,不能遗漏任何一个真正解,同时避免重复。(2)判定是否是真正
2021-11-12 21:30:08 267
原创 “21天好习惯第一期”-15
goto语句goto语句又叫无条件转移语句,可以出现在程序的任意一条语句之前。C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向, 转去执行语句标号所标识的语句。goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。建议:1)使用goto语句只能goto到同一函数内,而不能从一个函数里goto到另外一个函数里。.
2021-11-12 21:21:11 71
原创 “21天好习惯第一期”-14
希尔排序希尔排序是特殊的插入排序,直接插入排序每次插入前的遍历步长为1,而希尔排序是将待排序列分为若干个子序列,对这些子序列分别进行直接插入排序,当每个子序列长度为1时,再进行一次直接插入排序时,结果一定是有序的。常见的划分子序列的方法有:初始步长(两个子序列相应元素相差的距离)为要排的数的一半,之后每执行一次步长折半。#include <stdio.h>#include <malloc.h>void shellSort(int *a, int len); // .
2021-11-12 21:11:46 78
原创 “21天好习惯第一期”-13
链表链表和数组是算法中的两个基本数据结构。链表的特性,使其在某些操作上比数组更加高效。例如当进行插入和删除操作时,链表操作的时间复杂度仅为O(1)。另外,因为链表在内存中不是连续存储的,所以可以充分利用内存中的碎片空间。除此之外,链表还是很多算法的基础,最常见的哈希表就是基于链表来实现的。简单的说,链表的每个组成中同时存在实际参数和下一单元的地址,这种结构注定了他极易进行插入和删除,改变指针可以很快的改变数组储存结构。可以将一条链表想象成环环相扣的结点,就如平常所见到的锁链一样。链表内包含很多结
2021-11-12 12:55:20 209
原创 “21天好习惯”第一期-10
桶排序这个算法就好比有若干个桶,我们以10为例,编号从0~10。每出现一个数,就在对应编号的桶中放一个小旗子,最后只要数数每个桶中有几个小旗子就OK了。例如2号桶中有1个小旗子,表示2出现了一次;3号桶中有1个小旗子,表示3出现了一次;5号桶中有2个小旗子,表示5出现了两次;8号桶中有1个小旗子,表示8出现了一次。#include<stdio.h>int main(){ int a[100],t,max=sizeof(a)/sizeof(int); for(int i=0;i.
2021-11-12 12:07:37 212
原创 “21天好习惯”第一期-9
位运算位运算即按二进制进行运算,c语言中给了六个运算符:运算符含义描述1.&按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为02.|按位或 两个相应的二进制位中只要有一个为1,该位的结果值为13.^按位异或 若参加运算的两个二进制位值相同则为0,否则为14.~取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变05.<<左移 用来将一个数的各二进制位全部左移N位,右补06...
2021-11-12 10:13:11 70
原创 “21天好习惯”第一期-8
形参和实参的简单辨析C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。1.形参(形式参数)在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。2.实参(实际参数)函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参。...
2021-11-10 22:36:53 56
原创 “21天好习惯”第一期-7
对字符串以首字母进行字典序排序比较字符我们可以使用二元运算符,但对于字符串如何排序?那么我们要引进新函数’strcmp()‘strcmp(a,b)就是比较字符串a和字符串b在字典中的顺序。如果字符串a和字符串b完全相同,那么返回值为0。如果字符串a在字典中比字符串b先出现,那么返回值小于0。如果字符串a在字典中比字符串b后出现,那么返回值大于0。举一个例子:假设a和b是两个字符数组,分别存储两个字符串,然后把a和b按照字典序输出。if(strcmp(a,b)<0)//a在b前面(
2021-11-09 23:15:46 62
原创 “21天好习惯”第一期-6
strlen()函数strlen()用于获取字符串的长度。当使用strlen时,需要加入头文件#incluide<string.h>#include<string.h>#include<stdio.h>#include<stdlib.h>int main(){char a[101],t;int len,i,j;gets(a);len=strlen(a);for(i=0;i<=len-2;i++)for(j=i+1;j<
2021-11-09 23:06:12 110
原创 “21天好习惯”第一期-5
getchar的延伸getchar()读取一个字符,输入后等待用户按“Enter”键结束(带回显)。getche()(读取一个字符,输入后立即获取字符,不用按“Enter”键结束(带回显),getch()读取一个字符,输入后立即获取字符,不用按“Enter”键来结束(不带回显)。...
2021-11-09 22:57:03 57
原创 “21天好习惯”第一期-4
getchar和scanf#include<sidio.h>#include<stdlib.h>{int main()char a;a=getchar();printf("你刚才输入的字符是%c\n”,a);system("pause");return 0;}#include<sidio.h>#include<stdlib.h>{int main()char a;scanf("%c",&a);printf("你刚才输
2021-11-09 22:52:09 68
原创 “21天好习惯”第一期-3
水仙花数问题描述找出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 1的3次方 + 5的3次方 + 3的3次方。#include<stdio.h>int main(){ int m,n; while(scanf("%d%d",&m,&n)!=EOF){ int t=0; for(int i=m; i<=n; i++){
2021-11-09 15:26:41 61
原创 “21天好习惯”第一期-2
冒泡排序c语言绕不过的一个坎,在学习了基本的输入输出,顺序结构,选择结构,循环结构后,已经不影响理解冒泡排序,通过csdn的学习初步掌握冒泡排序.基本思路:每次比较两个相邻的元素,如果他们的顺序错误就把他们的位置交换.#include <stdio.h>#define N 10int main(){ int a[N] = { 12,35,99,18,76 }; int temp, i, j; for (i = 0; i < N-1; i++) for
2021-11-09 15:21:42 62
原创 “21天好习惯”第一期-1
取整和四舍五入在目前为遇到很多的题目中,都提到了四舍五入,但是就目前学习中所有四舍五入问题基本用保留小数点后若干位处理由系统自己处理,但是没有相对的函数吗,能保证系统的处理符合实际要求吗?查阅资料,获得以下:一.直接抹去小数1编译器自动转化类型2.强制类型转换对于编译器自动转化及强制类型转换,将会把小数的小数位去除,那么当我们需要四舍五入时,我们可以这样做:# include <stdio.h>int main(){ int y; double a...
2021-11-09 14:55:49 556
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人