- 博客(23)
- 收藏
- 关注
原创 链表-快指针和慢指针的使用方法
1)给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。本问题的思想是:定义两个指针,一个快指针fast,一个慢指针slow,慢指针每次走一步,快指针每次走两步,当不满足条件(fast&&fast->next)时,说明已经找到了中点,且中点时slow。/** * Definition for singly-linked...
2019-11-13 22:57:55 1301
原创 链表总结
链表总结(1)对链表进行操作时首先要判空,判断包括head判空和head->next判断,此处根据情况而定;(2)一般要定义多个指针存放临时的节点,这些指针的初始化必须考虑清楚;(3)循环的截至条件必须考虑清楚;...
2019-11-13 22:28:19 193
原创 冒泡排序
#include<stdio.h>#include<stdlib.h>//升序排序void BubbleSort(int* arr, int size){ for (int i = 0; i < size; i++) { for (int j = 0; j < size-1-i; j++) { if (arr[j]>arr...
2019-07-30 21:12:48 131
原创 数组大小、字符串大小
(1)一维数组int a[] = { 1, 2, 3, 4 };printf("%d\n", sizeof(a)); //16,计算的是整个数组字节数printf("%d\n", sizeof(a + 0));//4,数组名+0是一个指针,指向第1个元素的指针printf("%d\n", sizeof(a));//4,解引用,得到的是第一个元素1printf("%d\n", size...
2019-07-30 20:18:00 1039
原创 通讯录动态版本
实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人以名字排序所有联系人保存联系人到文件#define _CRT_SECURE_NO_WARNINGS#include&amp;lt;stdio.h&amp;gt;#includ...
2019-02-23 16:32:09 144
原创 通讯录
实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:1. 添加联系人信息2. 删除指定联系人信息3. 查找指定联系人信息4. 修改指定联系人信息5. 显示所有联系人信息6. 清空所有联系人7. 以名字排序所有联系人8. 保存联系人到文件设计的大体思路是:首先定义一个结构体,这个结构体中存放每个联系人应该包括的信息,再...
2019-02-23 15:44:14 440
原创 实现memmove函数
memmove用于拷贝字节,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,但复制后源内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。#include<stdio.h>#include<stdlib.h>#include<assert.h> void* Memcpy(vo...
2019-02-21 16:47:59 381
原创 实现memcpy函数
memcpy函数的功能是从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中。#include<stdio.h>#include<stdlib.h>#include<assert.h>void* Memcpy(void* dest, const void* src, size_t num){ assert(src != NULL); asse...
2019-02-21 16:13:45 304
原创 实现strcmp函数
strcmp函数是比较两个字符串的大小。当str1>str2时,返回大于0的数,当str1<str2时,返回小于0的数,当str1=str2时,返回0。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<assert.h>int Strcmp(...
2019-02-21 16:05:05 598
原创 实现strchr函数
strchr函数的作用是寻找字符在字符串中出现的位置。#include<stdio.h>#include<stdlib.h>#include<assert.h> const char * Strchr(const char * str, int c){ assert("str!=NULL"); while (*str != NULL) { ...
2019-02-21 15:54:15 529
原创 实现strstr函数
strstr函数的作用是寻找子字符串在目标字符串中第一次出现的位置。#include <stdio.h>#include<stdlib.h>#include<assert.h>const char * Strstr(const char * str1, const char * str2){ assert(str1 != NULL); assert...
2019-02-21 15:38:27 769
原创 实现strcat函数
strcat函数是将两个字符串进行连接。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include<stdlib.h>#include <string.h>#include<assert.h>char* Strcat(char * dest, const char * src){...
2019-02-21 15:17:02 950
原创 实现strcpy函数
strcpy函数是字符串复制函数。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<assert.h>char* Strcpy(char* dest, const char* src){ assert(src != NULL); assert(de...
2019-02-21 15:09:42 207
原创 c语言操作符总结
(1)算数操作符算数操作符包括+ - * / %+操作符的操作数可以是整型,也可以是浮点型;-操作符的操作数可以是整型,也可以是浮点型;*操作符的操作数可以是整型,也可以是浮点型;/操作符的操作数都为整数时,其结果为整数,若有一个操作数为浮点数,则其结果就为浮点数;%操作符的两个操作数必须为整数,返回两个数整除之后的余数。(2)移位操作符<<左移操作符,其移位规...
2019-02-21 10:20:58 149
原创 求两个数平均值的三种方法
求两个数平均值的三种方法1.使用(m+n)/2,求两个数的平均值#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main(){ int m, n; printf("请输入两个整数:"); scanf("%d %d", &m, &n); printf...
2019-02-20 14:39:51 6714
原创 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。分析:由题可知,凶手总共有四种可能性,分别是A,B,C,D,4个嫌疑犯都提供了证词,但是只有三个人说了真话,则判断条件应该为if (((killer...
2019-02-19 09:10:05 741
原创 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。分析:总共有5名运动员,每名运动员的名次都有5中可能,即1,2,3,4,5,根据题目要求知每名运动员只说对了一半,也就是说每位运动员都说对了一个...
2019-02-19 08:44:20 945
原创 c语言自定义类型知识总结
c语言自定义类型知识总结1.结构体类型创建在创建结构体时根据实际情况在结构体中添加应有的元素。结构体在声明的时候,前面必须添加struct关键字。例如:struct PersonInfo{char name[1024];char sex[1024];int age;char phone[1024];char address[1024];};定义变量: struct Perso...
2019-02-18 21:06:53 268
原创 一级指针、二级指针、指针和数组、指针数组总结
一级指针、二级指针、指针和数组、指针数组总结1.指针指针是个变量,用于存放内存单元的地址(编号)。2.一级指针举例:int a=8;int* p=&a;p是一个一级指针,它存放的是变量a的地址,对p解引用得到的就是a的值。int a[3]={1,2,3};int* p=a;这里的p也是一个一级指针,存放的是数组的首地址,数组名就是数组的首地址,对p解引用得到的是数组的...
2019-02-18 15:17:23 424
原创 二分查找
二分查找二分查找是一种在有序数组中查找某一特定元素的搜索算法。它的思想是:搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。#define _CRT_SECURE_NO_W...
2018-12-08 21:43:28 144
原创 猜数字游戏
猜数字游戏猜数字游戏的主要思想是:产生一个随机数,玩家开始猜,如果猜的比随机数大,就提示玩家猜大了,如果猜的比随机数小,就提示玩家猜小了,如果猜对了就提示玩家猜对了。实现代码如下: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<ti...
2018-12-08 21:39:24 170
原创 在一定范围的整数中9出现的次数
在一定范围的整数中9出现的次数首先考虑怎样获取1-100中9出现的次数,思路是:先找出个位上出现9的个数,然后再找出十位上出现9的个数。假设有一个1-100的数是a,它的个位上的数字是a%10,十位上的数字是a/10。判断个位和十位上的数是否为9,若为9就使计数器增1,反之,则不增。实现程序如下:#define _CRT_SECURE_NO_WARNINGS#include<stdi...
2018-12-03 17:23:44 534
原创 交换两个数的三种方法以及应用
交换两个数的三种方法以及应用当听到交换两个数时,大多数人的第一想法建立一个新的变量,然后将两个数进行交换。代码如下所示:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){int a, b, temp;printf(“请输入两个数:”);scanf("%d %d", &a, &b);p...
2018-12-03 17:07:52 550
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人