自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 链表倒置-创建逆序链表

创建逆序链表有两种方法,一种是创建逆序链表,一种是用栈记录链表的值,然后将栈的值输出。创建逆序链表创建逆序链表是在一个链表的基础上,头插法创建新链表,这就是创建的新链表。来看看代码实现link* printreverse(link* L){ link* p, * q; p = L->next; L->next = NULL; while (p) { q = p; p = p->next; q->next = L->next; L->ne

2020-11-14 21:02:50 303

原创 c语言头插法尾插法创建链表

头插法尾插法创建链表头插法尾插法创建链表一直是大家初学算法时搞不明白的事情,现在我将其总结了一下,发个博客记录一下尾插法尾插法就是定义一个头结点之后,挨个往后创建链表。最关键的两步就是head->next=a;head=a;这两步搞懂了就搞懂尾插法了鄙人不才画了两幅图,大家根据这个图的原理一步步推自己再画一下就能搞懂了头插法头插法是定义了头结点之后,一直在头结点之后并且在创建的结点之前插入结点。最关键的两步就是a->next=head->next;head-&g

2020-11-13 23:55:02 1124

原创 c语言编程题-输出质因子

题目题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,  重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。代码#include <stdio.h>void function(i

2020-11-13 14:56:01 1859

原创 c语言编程题-输出素数

题目题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,       则表明此数不是素数,反之是素数。代码#include <stdio.h>void judge(int n){ int i = 2; int count = 0; for (i; i < n; i++) { int d = n % i; if (d != 0) {//如果取余不为0,那么count+

2020-11-13 14:15:18 3938

原创 静态库和动态库的创建和使用

静态库:静态库是在程序执行之前就编译到目标程序去了;优点:运行快缺点:占用空间大静态库的创建:生成xx.a文件1.gcc cal.c -c (函数文件)生成xxx.o文件2.ar rcs libcalcul.a(需要生成的.a文件)cal.o//一般用lib开头,便于砍头去尾3.gcc calculate.c(主函数文件) -lcalcul -L./ -o runtest4. ./runtest动态库:在程序执行是临时去调用优点:小缺点:慢动态库的创建使用:生成xx.so文件1.g

2020-11-11 18:45:46 82

转载 atoi函数——将字符串转为整形

                    atoi()函数 atoi():int atoi(const char *str ); 功能:把字符串转换成整型数。 str:要进行转换的字符串 返回值:每个函数返回 int 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则atoi的返回值为 .

2020-11-01 15:50:09 768

原创 进程间的通信——消息队列

消息队列的实现方式消息队列等于是创建一个队列,进程两端可以往里放数据,也可以从其中提出数据,识别方式是通过keyid来识别队列,队列间消息的收放通过massage type识别。api1 #include <sys/msg.h>22 // 创建或打开消息队列:成功返回队列ID,失败返回-1 int msgget(key_t key, int flag);3 // 添加消息:成功返回0,失败返回-1 int msgsnd(int msqid, const void *ptr, siz

2020-10-29 23:08:28 152

原创 管道初战-利用父子进程实现管道

利用父子进程实现管道管道实质是一方发送,一方接收利用fork父子进程,将父进程视为管道输入端,子进程视为管道接收端利用fork返回值的三个状态;当pid<0时,创建进程失败;当pid>0时,进入父进程;当pid=0时,进入子进程;当进入父进程时,关闭读,令fd[0];进入写fd[1];利用write函数向缓冲区写入"from father pid";然后在子进程,关闭写,令fd[1];进入读fd[0];利用read函数读出缓冲区的buf;然后打印出来运行结果:管道的输出

2020-10-26 00:00:23 315

原创 fork和exec,system和exec

fork和exec的结合使用fork函数是分父子进程执行代码,而exec函数是在函数中执行其他指令调用fork和exec来模拟用户输入,当用户输入某一key值时,中断当前指令去用exec指令执行其他指令当用户输入非1时,显示wait,do nothing,模拟系统待机等待用户的输入,当用户输入1时,调用execl执行目录下的change指令。system,exec族函数的应用system是用shell来调用程序=fork+exec+waitpid,而exec是直接让你的程序代替用来的程序运行。

2020-10-22 22:00:43 360

原创 进程中fork和vfork的区别

fork和vfork都是调用函数显示进程id,但是fork是父子进程同时顺序进行,不会中断影响,而vfork是先执行子进程,当子进程结束之后才会执行父进程vfork函数执行这个vfork函数中,利用for循环将子进程执行三次,然后中断子进程,转到父进程,同时打印循环数。运行结果:fork函数执行fork函数中父子进程顺序进行运行结果:...

2020-10-20 23:51:47 449

原创 获取进程号,判断父子进程

学习内容:getpid 和 fork获取进程id并判断父子进程获取进程id的两种方式:例如:1、 getpid()2、 fork()具体区别调用大佬的博文,写的很详细:https://blog.csdn.net/qq_20916555/article/details/51166103?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160311207919724835820964%2522%252C%2522scm%2522%25

2020-10-19 21:05:05 900

原创 c库实现读写操作

标准c库实现读写操作操作步骤fopen打开文件fwrite将目标内容写到缓冲区fread将缓冲区的内容读到目标文件//FILE *fopen(const char *path, const char *mode)FILE *fd;char *str="woshi zhen nmd nb";fd=fopen("./wu.txt","w+")//第一个是读入的路径,第二是fopen的操作权限//size_t fwrite(const void *ptr, size_t size, siz

2020-10-02 14:57:11 125

空空如也

空空如也

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

TA关注的人

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