自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 FreeCad-0.19源码For Windows编译分享

最近花了不少时间来研究这个FreeCad开源代码的编译,一是查看GitHub上的安装介绍,二是查看各位道友们踩坑安装的心路历程,由于比较信息零碎,也是跟着踩了不少的坑。。。为了帮助后人快速编译通过,节省时间决定先梳理出一套干净利落的组合拳。

2024-03-22 17:50:36 543

原创 VS2013查找源码的方法

1.在调用的函数处选择该函数,然后按F12。2.右上方会出现string.h,在该处点击鼠标右键,点击“打开所在的文件夹”3.退回上一级路径到VC,打开crt文件夹,打开src文件夹,如下图出现的就是我们需要的库函数里的源代码。...

2019-08-15 19:13:23 1757

原创 C语言:求数组中元素出现次数超过数组长度一半的数

原理:设一个变量保存当前值。设一个次数,当前值与下一个值进行比較。假设相等,次数加一,假设不相等。次数减一。假设次数减到0了还是不相等,就把当前值替换掉。#include <stdio.h>#include <string.h>#include <math.h>#include <assert.h>#pragma warning (disa...

2019-08-08 12:45:19 1086

原创 C语言中6条遍历的方法

1.简单的数字遍历,通过数字确定次数。for(i=a;i<=b;i++)i完成了对[a,b]的遍历2.数组遍历for(i=0;i<=n;i++)a[i]完成了对数组a的遍历3.字符串遍历for(i=0;str[i];i++)str[i]完成了对字符串str的遍历4.数位遍历for(i=src;i;i/=10)i%10完成了对十进制数字src中每一位的遍历i%m完...

2019-08-04 20:43:10 11079

原创 C语言:输入两条单链表,找出他们相交的节点。如果有,返回节点的位置,如果没有返回NULL

对于两条单链表,如果他们相交,则交点后的长度是相同的。如图所示:所以,我们需要做的是:1.判断两条链表的长度2.长链表和短链表相减,得到长链表和短链表对齐所需要的距离gap3.让两个链表从同距离末尾同等距离的位置开始遍历4.如果两个指针指向的位置相同,返回任意一个指针即可,反之返回空。源代码:SListNode *getIntersectionNode(SListNode *he...

2019-07-21 13:10:54 268

原创 C语言输入\输出缓冲规则

stdin1.一个进程只有一个stdin,所有的输入共用这个stdin。2.如果stdin中的数据较少,不符合目前规则(规则见后续)所需的,那么程序会阻塞等待输入。3.已经读走的数据会从stdin消失。4.在键盘上敲击的每个字符,都会在转换后放在stdin里。5.敲击回车的时候,stdin中的数据将会提交给程序处理。stdout输出有个缓存区,当这个缓存足够大的时候就会输出(缓存有界...

2019-07-20 14:54:13 390

转载 C语言关于单链表\给定一个链表,返回链表开始入环的第一个节点

2019-07-20 00:50:10 703

原创 C语言倒置单链表

法1:void SListReverse(SListNode **pphead) { SListNode *head = *pphead; //此指针在每次循环中始终指向当前链表的头 SListNode *tmp = head->next; //此指针在每次循环中始终指向要被后删头插的节点 SListNode *oldh = *pphead; //此指针在每次循环中始...

2019-07-20 00:41:17 710

原创 C语言 关于对顺序表中的多个相同的数删除

优化代码: void SeqListRemoveAll(SeqList* psl, SLDataType x){ int gap = 0, i; for (i = 0; i < psl->size; i++) { if (psl->array[i] == x) { gap++; } else { psl->array[i - gap...

2019-07-18 22:02:56 1560

原创 C语言 文件版本的通讯录

contact.h#ifndef __CONTACT__H#define __CONTACT__H#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>#include <vld.h> //检测内存泄漏#pragma warn...

2019-07-09 17:37:27 297

原创 C语言 动态版本的通讯录

#ifndef __CONTACT__H#define __CONTACT__H#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>#include <vld.h> //检测内存泄漏#pragma warning (disab...

2019-07-09 15:48:25 1007

原创 C语言静态通讯录

实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人源代码:contact.h#ifndef __CONTACT_H_#define __CONTACT_H_#include <stdio.h>#...

2019-07-07 21:28:40 3196

原创 文件操作相关函数总结

什么是文件1.)程序文件:包括源程序文件(后缀为.c ),目标文件(windows 环境后缀为.obj ),可执行程序(windows 环境后缀为:.exe)。2.)数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。文件名一个文件要有一个唯一的文件标识,以便用户识别和应用。文件名包括3部分:文件路径+文件名主干+文件后缀。...

2019-07-06 13:38:04 246

原创 简单的喝汽水问题

题目:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水。思路:1.拥有20块钱,可以买20瓶汽水,总共喝了20瓶,剩下20个空瓶子2.20个空瓶子可以兑换10瓶汽水,总共喝了30瓶,剩下10个空瓶子3.10个空瓶子可以兑换5瓶汽水,总共喝了35瓶,剩下5个空瓶子4.5个空瓶子可以兑换2瓶汽水,总共喝了37瓶,剩下3个空瓶子5.3个空瓶子可以兑换1瓶汽水,总共喝...

2019-07-05 14:54:15 194

原创 剑指offer:一个数组中只有两个数字是出现一次,其他数都出现一次找到这两个数并打印出来

思路异或:相同数之间的异或,结果为0;不同数之间的异或,为这两个数的和。1)将整个数组进行异或,异或的结果就是两个不一样的数字异或的结果2)求出异或的结果当中,从右往左数第pos位为1的下表pos3)将数组以第pos位为1或者不为1分为两个数组4)分别对两个数组进行异或,可得出这两个数字...

2019-07-05 00:30:36 190

原创 字符串操作的模拟实现

1.strcpychar *my_strcpy(char *dst,char*src){assert(dst!=NULL && src!=NULL); char *ret = dst; //使用ret保存dst的首地址,最后打印输出只要找到首地址。 while (*src!='\0') { *dst = *src; dst++; src++; } *dst...

2019-07-04 21:35:37 137

原创 判断一个字符串是否由另一个字符串旋转得到

对一个长度为len的字符串而言,左旋k个字符就相当于右旋len-k个字符。所以对于判断字符串是否由另一个字符串旋转得到,我们可以通过其任一种方式进行判断。思路1:给定两个已知的长度相等的字符串,通过for循环,通过每次对字符串进行左旋一个的操作,和需要判断的字符串做strcmp操作。循环终止条件是遍历完字符串的字符,即不超过字符串的长度。源代码如下:#include <stdio.h...

2019-07-04 12:31:42 694

原创 C语言 关于malloc free calloc realloc

为什么存在动态内存分配?我们已经掌握的内存的开辟方式有:int val=20;//在栈上开辟4个字节;char arr[10]={0};//在栈空间上开辟10个字节的连续空间。但是上述开辟方式有两个特点:(1)空间开辟大小是固定的。(2)数组在申明的时候,必须指定数组的长度它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才知...

2019-06-30 23:36:36 167

原创 关于C语言中结构体、联合的内存对齐

结构体为什么存在内存对齐?1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。总的来说,结构体的内存对齐是拿空间来换取时间的做法。对齐规则1、...

2019-06-30 01:54:15 376

原创 C语言 关于大小端的判定问题

大端模式所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;记忆方法: 地址的增长顺序与值的增长顺序相反小端模式所谓的小端模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这...

2019-06-29 22:01:40 121

原创 C语言 关于汉诺塔

汉诺塔下面的定义摘自维基百科:有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:1.每次只能移动一个圆盘;2.大盘不能叠在小盘上面。如图所示采用递归的方式演示该步骤。源代码:#include <stdio.h>#include <windows.h>#pragma warning (...

2019-06-28 21:50:50 257

原创 C语言中的递归

递归 总的来说就是自己调自己。一个过程或者函数在其定义或说明中有直接或间接调用自身的方法,它通常把一个大型复杂问题转化成一个与原问题相似的规模较小的问题来求解。 其优点是大大地减少了程序的代码量。缺点是需要多次调用函数,需要不断在栈上开辟空间(形成栈帧结构),被调函数调用结束后返回一个数到上个被调函数,该被调函数空间被释放。在这个过程中,需要时间的耗费。递归次数越多,所需花费时间也越多...

2019-06-28 00:24:09 116

原创 实现一个函数,可以左旋字符串中的k个字符。

ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB该篇文章对左旋右旋进行探讨:源代码如下:#include <stdio.h>#include <windows.h>#include <assert.h>#include <String.h>#pragma warning (disable:4996)//思路&nbs...

2019-06-25 22:02:01 76

原创 理解 一级指针 二级指针 指针和数组 指针数组

首先,概括来说指针是地址,指针变量是变量。指针是编程语言中的一个对象,它的值直接指向存在电脑存储器另一个地方的值,由于通过地址能找到所需的变量单元。可以说,地址指向该变量单元。#include <stdio.h>#include <windows.h>#pragma warning (disable :4996)int main(){ int a = 10;...

2019-06-24 13:36:35 103

原创 C语言-关于快排(qsort)

#include <stdio.h>#include <windows.h>#pragma warning (disable:4996)int int_cmp(const void *p1, const void *p2){ const int *x = (const int*)p1; const int *y = (const int*)p2; if (*x...

2019-06-21 22:22:51 125

原创 关于C语言的冒泡排序

以下是本人个人理解,如果有理解错误的地方或者需要优化的地方,希望大家能给出宝贵的意见!#include <stdio.h>#include <windows.h>void bubbleSort(int arr[], int len){ int temp; int i, j; for (i = 0; i < len - 1; i++) { /* 外循环为...

2019-06-21 18:46:43 205

原创 倒置字符串

有一个字符数组的内容为:“student a am i”, 请你将数组的内容改为"i am a student".要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。例如 :i am a student 通过逆置到如下:student a am ii ma a tneduts源代码如下:#include <stdio.h>#include <...

2019-06-01 23:45:08 202

原创 猜数字游戏

完成猜数字游戏(1-100)#include <stdio.h>#include <windows.h>#include <math.h>#pragma warning(disable:4996)int menu(){ //菜单函数 int choose = 0; ...

2019-05-06 21:42:49 817

原创 写个素数

建立一个判断素数的函数所谓素数是只能被1或者本身整除的数所以循环从2到x-1遍历,进行循环如果从主函数传进来的数能整出循环中的某一个数,证明不是素数如果return 在里面;如果return 在里面;比如155模2 首先判断的是能不能整除 ,不能得话直接就是else 得到返回值 紧接着就跳出函数了 后面的也就没接着遍历了所以在外面;#pragma warning (disabl...

2019-04-30 00:09:33 114

原创 判断闰年

判断1000年—2000年之间的闰年#include <stdio.h>#include <math.h>#include <windows.h>int IsLeapYear(int year){ if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){//建立一个IsLe...

2019-04-28 21:29:37 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除