c语言
文章平均质量分 74
刘祖义
专注于自媒体平台运营和网站优化的汉子,和别人合作的android应用程序曾获得第八届信息技术水平大赛二等奖!
展开
-
学生信息管理分析系统描述
成绩管理课程设计文档 目 录一、软件需求分析 11、可行性分析 1(1)经济可行性 1(2)法律可行性 1(3)技术可行性 12、用户需求概述 1二、软件分析与设计 31、整体设计(概要设计) 32、详细设计 7三、编码实现 19四、测试 31总结 36附录:C语言课程设计任务书 1一、软原创 2013-02-03 14:41:24 · 1738 阅读 · 0 评论 -
遇到的比较有意思的问题(1)去掉重复数字(2)提取数组的子数组,求和最大的子数组、最大的子数组和
遇到的比较有意思的问题(1)去掉重复数字(2)提取数组的子数组,求最大的子数组、最大的子数组和原创 2013-11-03 17:04:38 · 1351 阅读 · 0 评论 -
嵌入式 贪食蛇小游戏
SDL贪食蛇原创 2013-12-30 17:18:33 · 6052 阅读 · 1 评论 -
动静态库的生成
动态库和静态库的生成原创 2013-12-30 17:46:34 · 1102 阅读 · 0 评论 -
MADPLAY移植
MADPLAY的移植原创 2013-12-30 17:57:06 · 1203 阅读 · 0 评论 -
链表的链接
主要的算法思想就是:找到a链表的尾部 和b链表的头部链接在一起就可以了!原创 2014-03-12 20:55:19 · 1612 阅读 · 0 评论 -
用链表实现多项式的加减(链表写入数据用头插法)
今天学习了用链表实现多项式的加减运算 实现的思路是这样的(1)观察两个多项式 ,找出最高项的系数 ,这是为了确定在链表中确定存放多少个数据的关键。比如多项式最高项的系数为4,那么这个链表中就要存放五个数据。(2)观察其他项的系数,如果多项式X^3的系数为零,那么在链表中的该节点就存放零。如果该多项式有常数,链表的最后就存放该常数。 (3)采用头插法将多项式的系数存放在链表中。依次原创 2014-03-13 19:27:47 · 1218 阅读 · 0 评论 -
循环链表的创建 (采用为尾插法)
循环链表的创建和普通单项链表的创建没有什么区别,只不过在链表尾端的指针指向链表头结点即可,没什么难度,直接上代码了啊!#include#includestruct clist { int data; struct clist *next; };typedef struct clist cnode;typedef cnode *clink;clin原创 2014-03-13 21:30:51 · 2454 阅读 · 0 评论 -
顺序栈实现十进制和八进制之间的转换
顺序栈实现十进制和八进制之间的转换(1)首先实现栈的初始化,既申请固定大小的数组空间,存储数据,用到的方法是 int InitStack( struct sqstack *s ); (2)接下来就是让数据入栈 ,用到的方法是int push( struct sqstack *s,int e ) (3)与数据入栈相对应的是数据出栈,用到的方法是 int pop( struc原创 2014-03-30 11:09:48 · 6137 阅读 · 0 评论 -
二叉树的几种实现方式(1)数组法
二叉树的普通数组和结构体数组实现。原创 2014-04-21 09:53:06 · 1620 阅读 · 0 评论 -
二叉树的实现(2)链表
本文是接上一篇文章写得。这个结构体存放了树根的数据,以及指向左子树和右子树的指针。struct tree{ int data; struct tree *left; struct tree *right;};主要用三个函数btree insert_node( btree root ,int value)btree creatbtree(原创 2014-04-21 10:03:29 · 1088 阅读 · 0 评论 -
二叉树的遍历
所谓的遍历是以根节点做标准的,若根节点在左中右三个结点中最先输出,叫前序遍历,以此类推,,若根节点在左中右三个结点中第二个输出,叫中序遍历,若根节点在左中右三个结点中最后输出,叫后序遍历,原创 2014-04-21 13:32:22 · 1032 阅读 · 0 评论 -
二叉树的递归创建,以及二叉查找树查找的建立 和遍历查找的比较
二叉树的递归创建 、以及二叉查找树查找的建立 和遍历查找的比较(1)二叉树的递归创建和二叉树的数组表示法非常相似,可参考二叉树的数组创建(2)二叉查找树的特性 1)每一个结点的值都不相同,也就是说整棵树中的每一个结点都拥有不同的值。 2)每一个结点的数据大于左子树结点,但是小于右子树结点。 3)左、右两部分的子树,也是一颗二叉查找树。和遍历查找相比,遍历查找需要查找左右两颗子树,而二叉查找树只需要查找左右子树的某个子树都可以。原创 2014-04-21 17:23:23 · 2415 阅读 · 0 评论 -
排序方法之标准库中的快排 qsort ()函数
C标准库qsort()函数的用法(快排) 使用快速排序例程进行排序头文件:stdlib.h用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void*,const void *));参数: 1 待排序数组首地址2 数组中待排序元素数量3 各元素的占用空间大小4 指向函数的指针,用于原创 2013-08-09 19:59:38 · 1550 阅读 · 0 评论 -
利用管道进行通信
管道简介:管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。管道提供了简单的流控制机制。进程试图读空管道时,在有数据写入管道前,进程将一直阻塞。同样,管道已经满时,进程再试图写管道,在其它进程从管道中移走数据之前,写进程将原创 2014-11-10 18:40:25 · 1368 阅读 · 0 评论 -
共享内存和操作共享内存几个函数的用法
共享内存是进程间通信中最简单的方式之一。共享内存允许两个或更多进程访问同一块内存,就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。原创 2014-11-10 20:34:17 · 2742 阅读 · 0 评论 -
编写makefile的方法
编写makefile的一般方法在这里通过编写一个简单的makefile实例,和大家交流学习编写makefile的方法(1) 首先在程序员的心中必须知道源程序有几个模块构成在此实例中源程序有3模块构成,分别是头文件 tou.h ,函数fun.c ,主函数main.c(2) 编写程序的各个模块1) 编写头文件 在此实例中头文件tou.h中包含了标准库库函原创 2013-09-23 20:53:50 · 1327 阅读 · 0 评论 -
C语言位运算符:与、或、异或、取反、左移和右移
语言位运算符:与、或、异或、取反、左移和右移位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表:运算符 含义 描述& 按位与如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的原创 2013-09-21 16:44:16 · 25512 阅读 · 0 评论 -
嵌入式入门
C语言代码考评示例#includetypedef struct info1 { char *next; }INFO1; typedef struct info { short *next; }INFO2; typedef struct info3 { int *next;原创 2013-03-18 09:44:07 · 920 阅读 · 0 评论 -
c语言典型例题及代码(1)
这个寒假复习回顾了学习c语言以来做过的典型例题,现把它总结如下。求各位大神指点评论啊!例(1)首先需要了解编译系统,所以对编译系统常用变量分配的字节数进行了测试。#includeint main(){ printf("%d\n",sizeof(int)); printf("%d\n",sizeof(float)); printf("%d\n",sizeof(doub原创 2013-02-15 15:05:21 · 2107 阅读 · 0 评论 -
c语言解析系列(7)文件和动态内存分配和指向它的指针变量
I文件程序在执行完各种操作之后,需要将程序运行的结果保存以便随时取用,这就需要将程序运行结果保存入文件。保存文件前需要知道(一)文件的打开(创建)方式 头文件 #include定义 文件指针 FILE *fp fp=fopen(“文件名”,”读写方式”) 如果创建文件失败,返回一个空指针NULL 一般用这样的方式创建文件原创 2013-02-08 13:41:50 · 1241 阅读 · 0 评论 -
链表的反转
(1)链表的反转 原先的链表保留一个头结点head,通过该头结点可以遍历链表的每一个结点里内容,如果在链表遍历的过程中,再用两个指针把把链表里的内容指针的指向改变,使原先指向下一个节点的,改为指向它的前一个节点,就可以实现链表的反转了!#include#includestruct llist { int num; struct llist *next;原创 2013-05-20 09:23:23 · 1205 阅读 · 0 评论 -
学生信息管理分析系统
#include#include#include#include struct student { int num; char name[20]; int math; int pe; struct student *next; };int n=0;void print(struct student *原创 2013-02-01 14:01:36 · 991 阅读 · 0 评论 -
在不同编译环境中如何使用sleep()函数
今天在学习有关时间函数时,想让程序暂时挂起,一段时间后在继续执行!用到了系统函数sleep();在vc下sleep函数是以毫秒为单位,如果想让其停留3秒,需要这样做 sleep(3*1000);需要头文件#include #include#include#includeint main(){ time_t timep;//定义 time_t类型原创 2013-06-24 13:42:40 · 1635 阅读 · 0 评论 -
linux 进程控制
进程 产生子进程设置进程id统计进程信息原创 2013-07-15 09:48:30 · 1213 阅读 · 0 评论 -
如何获取系统当前时间
需要的头文件#include先做一个获取系统当前时间的范例,再来解释所用的函数的作用代码示例:#include#includeint main(){ time_t timep;//定义 time_t类型变量timep,类型为long int型 time( &timep );//把获取的时间储存 //printf(原创 2013-06-24 10:23:25 · 1491 阅读 · 0 评论 -
宏与条件编译
一:定义宏(1) 不带参数的宏#define PI 3.1415926意义:在程序中如果遇到PI,那么PI就会被3.1415926代替如果程序不想让PI被替换为3.1415926那么可以在不需要宏定义是结束宏的使命结束方法:#undef 宏名参考实例:#include#define PI 3.1415926int main(){ doubl原创 2013-07-14 17:12:59 · 1469 阅读 · 0 评论 -
僵尸进程
僵尸进程产生僵尸进程如何避免产生僵尸进程原创 2013-07-15 09:51:34 · 1116 阅读 · 0 评论 -
设置信号信号处理函数void (*signal (int signo ,void (*fun)(int )))(int)
设置信号信号处理函数void (*signal (int signo ,void (*fun)(int )))(int)一个进程收到信号时需要跳转到信号处理函数的代码处执行。系统为每个信号提供给了多种默认的处理方式。linux允许用户提供自己的信号处理函数,使用signal函数将处理函数加载,并且通知系统.原创 2013-07-16 20:07:03 · 1962 阅读 · 0 评论 -
建立共享内存和操作共享内存几个函数的用法
建立共享内存和操作共享内存几个函数的用法在创建共享内存和操作共享内存的时候被下面这些函数的参数弄糊涂了,遂查找资料写下各个函数的说明。所需头文件#include#include函数(1)shmget(key_t key,int size,int shmflag)函数说明shmget()用来取得参数key所关联的共享内存识别代号,如果key是IPC_PRIVA原创 2013-07-21 17:00:27 · 1841 阅读 · 0 评论 -
转换表
转换表原创 2013-08-05 16:12:01 · 1073 阅读 · 0 评论 -
排序方法之堆排序
堆排序的实现(—)创建初始堆(二)堆排序在创建初始堆之前首先要了解一些关于堆的概念,还需要了解一些关于平衡二叉树的内容 (1)堆的节点数 =n/2; 并且是只舍不入; (2)最后一个堆结点=(n/2)-1; (3)对于任意结点a[x],可以找到它子结点上的内容a[2x+1]和a[2x+2](——)创建一个堆实现原理:它考察堆的各个结点并且使之成为一个堆。这原创 2013-08-09 16:49:26 · 1815 阅读 · 0 评论 -
《《内存和性能优化》》给我带来的!
《《内存和性能优化》》这本书教会了我很多!有很多的东西自己知道,但是确实想用语言表达出来很难,下面就简单的发表我的一部分关于这本书的新的吧!我学会了在进行系统设计时要注意的问题(1)如何做需求分析(2)如何来检测算法的稳定性(3)如何优化自己的程序(4)如何在编写程序时写出高质量的代码(5)在程序调试的过程中如何定位错误这些方法的作用主要是用来进行性能和内存的优化最后也原创 2013-08-22 09:06:34 · 3999 阅读 · 0 评论 -
管道通信(使用使用popen和pclose函数可以简洁的控制管道)
函数原型:FILE *popen(const char * command ,const char *mode)int pclose(FILE * stream)注意点:使用popen和pclose函数可以简洁的控制管道,不需要更多的代码,但是降低了程序员对管道的控制能力参数commend是shell命令参数mode是一个字符指针,r或W,分别表示popen函数的返回值原创 2014-11-10 18:34:04 · 2020 阅读 · 0 评论