
C语言
文章平均质量分 59
odaynot
这个作者很懒,什么都没留下…
展开
-
简单的比较C语言下交换a,b数值的代码效率
以下几个语句都能交换a,b的值1)a^=b^=a^=b;2)temp = a;a = b;b = temp;3)a = a^b;b = a^b;a = a^b;效率为2) > 3) > 1)验证代码如下:(linux下GCC和win下codeblocks通过编译)#include #include #include void原创 2012-09-02 11:04:33 · 5232 阅读 · 2 评论 -
C语言计算汉诺塔最小移动步数 (二)
前几天写的:C语言计算汉诺塔最小移动步数(一)当时还不知道用2^n-1这个公式来求解汉诺塔移动步骤。=_=偶然间在网上发现了这个公式,发现当时写的算法还是比较繁琐的。所以又根据这个公式又写了一个。那篇的实现是两个数组来回赋值,这个是用一个数组实现的。代码如下:(运行结果请看上面链接)/************************************** * 目的:用来原创 2012-10-31 22:45:06 · 6313 阅读 · 3 评论 -
C语言计算汉诺塔最小移动步数(一)
效果图:/*************************************** 目的:用来计算汉诺塔移动的次数* 原理:找规律,如三层是7,四层是7*2+1=15,五层是15*2+1=31 ...* 时间:2012-10-27* 平台:linux && windows* 作者:odaynot*/#include int main(){ char原创 2012-10-27 09:40:21 · 14932 阅读 · 1 评论 -
二叉树的建立与先序中序后序遍历
代码摘自郝斌老师的数据结构视频建立如下图所示的二叉树:代码如下:#include #include struct BTNode { int data; struct BTNode * pLchild; //p是指针 L是左 child是孩子 struct BTNode * pRchild; };//函数声明BTNode * CreateBTree();vo转载 2012-10-24 15:49:43 · 4374 阅读 · 0 评论 -
浅谈windows和linux下内存分配规律
首先先说明下,本文中代码来自牛刀教程。写的很不错。给我不少的启发。谢谢了我们都知道,在使用C语言时,比如定义一个数组,一个变量。那么系统都会随机的分配内存。那么你知道内存分配的规律吗?让我们用两个实验来说明windows和linux下,内存分配方式的不同。同一个程序(如下)#include int main(){ char ch1[] = {'A',原创 2012-11-12 14:45:16 · 3349 阅读 · 0 评论 -
C语言格式化输出日历(万年历)
C语言控制台输出日历。先输入年份,然后输入每行显示的月份个数。如图:代码如下:#include int main(void){ int a, i, j, n, k, t, w, x, y, z; static int d[13][78]; int m[14] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 3原创 2012-11-18 18:47:50 · 14059 阅读 · 1 评论 -
素数——上帝用来描述宇宙的文字
试商判别法求素数和筛选法求素数个有所长。试商判别法较为直观,设计容易实现,因而常常被人们使用。筛选法在较大的整数判别上效率更高些。但是设计较难把握。1,试商判别法求素数#include #include int main(void){ long start = 0, end = 0, i = 0, j = 0; int zf = 0, n = 0;原创 2012-11-17 16:22:09 · 1560 阅读 · 0 评论 -
GTK+学习记录(二)添加程序图标
更改启动器的图标:(系统:ubuntu)代码如下:#includeGdkPixbuf *create_pixbuf(const gchar* filename){ GdkPixbuf *pixbuf; GError *error = NULL; pixbuf = gdk_pixbuf_new_from_file(filename, &error); if(!pixbuf)原创 2012-11-25 20:39:38 · 3839 阅读 · 0 评论 -
C语言——解数独程序[源码]
用C语言写的解数独的程序。在linux下测试成功运行。效果如图:这是带解的数独,需要填写的部分用数字0代替。这是程序运行后的效果图。看看,数独已经搞定啦~~~程序源码如下:#include #include #define SIZE 9#define get_low_bit(x) ((~x&(x-1))+1)struct{ int left原创 2012-12-28 22:14:17 · 14903 阅读 · 4 评论 -
C语言身份证信息查询系统(可验证输入身份证是否合法)
利用C语言做的一个身份证信息查询系统。原理很简单,也没什么技术难度,城市信息不是很多,就一并加入到了源代码中了。关于身份证非法的判断还是很有用的,另外以下代码如有需要的可以直接使用或根据需要修改源码。(有待改进实现文件读取查询,那样城市信息可以更新的更加详细)/*重点是这里*/一. 将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9原创 2012-09-04 15:16:20 · 50350 阅读 · 16 评论 -
操作系统进程调度管理实验【C语言】【源码】【windows版】
CodeBlocks编译运行通过。欢迎试用,提交BUG。O(∩_∩)O~#include #include #include #include int id = 1;typedef struct Node { int pid; int date; struct Node *pNext;} NODE, *PNODE;int random(in原创 2013-09-24 14:02:06 · 7832 阅读 · 2 评论 -
一个防止溢出的一个例子
来自C语言吧:http://tieba.baidu.com/p/1581936864?pn=1#include int main() { double average1 = 0.0; double average2 = 0.0; int i; for(i = 0; i < 10000000; i++) { average1 += 111转载 2012-10-30 15:33:01 · 1105 阅读 · 0 评论 -
不可忽视的和与奇——舍罕王的失算
舍罕王的失算问题的计算。c语言实现。以此来复习C语言,锻炼解决问题的能力。/** 时间:2012-10-14* 环境:GCC通过* 用途:通过C语言计算舍罕王的失算*///编译时如有提示找不到pow()函数,编译时加上-lm即可。如:gcc -Wall 1.c -lm -o 1#include #include int main(void){ double原创 2012-10-14 22:37:52 · 7383 阅读 · 0 评论 -
C语言求高精度PI
如下代码能求解出高精度的PI值#include #include long a=10000,b,c=2800,d,e,f[2801],g; int main() { for(;b-c;) f[b++]=a/5; for(;d=0,g=c*2;c-=14,printf("%.4ld",e+d/a),e=d%a) //原代码为%.4d,GCC给出警告.已改为%.4ld转载 2012-08-30 10:19:22 · 10673 阅读 · 0 评论 -
C语言学生信息管理系统(动态链表版)
大一上学期的期末作业,只记得当时弄了好长时间。在写代码的过程中,能发现很多问题,错误,折磨人的很。不过也确实学到了好多东西。这其中,有王瑶哥和菲菲姐的热心帮助。在此谢谢他们喽~当然,现在看来,代码还有很多可以优化的地方。本程序功能还算齐全,BUG还有待发现,没有包含输入检测机制。精力有限,后悔当年没有养成写注释的习惯,现在放在那里自己都不愿意看了,=_=! 等以后有机会用C++再写个吧。原创 2012-09-04 16:03:49 · 32914 阅读 · 11 评论 -
栈的基本实现(入栈,出栈,清空,判断是否为空)
#include #include typedef struct Node { int data; struct Node *pNext;}NODE, *PNODE;typedef struct Stack { PNODE pTop; PNODE pBottom;}STACK, *PSTACK;void init(PSTACK pS) { pS->pTop = (PNO原创 2012-10-02 13:51:44 · 15631 阅读 · 1 评论 -
一起来学Makefile(一)
关于makefile的使用及介绍网上非常多。也有专门的书籍介绍makefile。推荐这本书,是详细介绍makefile的——《跟我一起写makefile》在这里,我只会简单的介绍makefile的语法。着重写些注意事项。主要是写些例子,帮助大家理解是快速入门。最简单的就是单文件了。直接编译会更快些,用makefile反倒麻烦,不过这是有助于理解的,循序渐进才能学好的。好了,不多说,先从原创 2012-09-13 19:51:43 · 1663 阅读 · 0 评论 -
杭电ACM第1001题(C语言版)答案——Sum Problem
# include int main() { int n, i, sum = 0; while(scanf("%d", &n)!=EOF) { for(i=1; i<=n; ++i) sum = sum + i; printf("%d\n\n", sum); sum = 0; } retur原创 2012-09-26 14:36:29 · 13598 阅读 · 3 评论 -
杭电ACM第1000题(C语言版)答案——A + B Problem
#include int main(void){ int a,b; while(scanf("%d%d",&a,&b)!=EOF) printf("%d\n",a+b); return 0;}原创 2012-09-26 14:28:08 · 20593 阅读 · 1 评论 -
杭电ACM第1002题(C语言版)答案——A + B Problem II
#include#includeint shu(char a){ return (a-'0');}int main(){ char a[1000],b[1000]; int num[1001]; int n,i,j=1,al,bl,k,t; scanf("%d",&n); while(n--) { if(j!=1)原创 2012-10-08 19:12:05 · 21844 阅读 · 8 评论 -
C语言单链表逆置
实现单链表的逆置。效果图:多的就不说了。代码如下:#include #include typedef struct node { int data; struct node *next;}Node;//创建链表Node *CreatList(void){ int val, i, n; Node *phead, *p, *q; phead = NUL原创 2012-09-18 17:47:03 · 48900 阅读 · 13 评论 -
undefined reference to 'sin'
当使用gcc编译器编译含数学函数的C程序时,会出现undefined reference to `sin'错误.这种错误一般是由于缺少库造成的.如上图的一个小程序,当在linux下编译会出现如下问题:编译时如下选项即可:gcc main.c -lm -o main其实,通过这个小问题,我们可以学习更多的知识。思考如下:明明是包含了math.h原创 2012-09-19 14:40:43 · 15619 阅读 · 5 评论 -
C语言生成2000w行数据的两个实现
代码摘自百度贴吧,原贴地址:http://tieba.baidu.com/p/1626351476以下两个代码均在linux下GCC测试通过要求:字符串长度为16字符串只能包含大小写字母和数字要求生成20000000行的TXT文本/*********************************** Author: Ervin_Zhao(2012.6)* Comp转载 2013-11-14 20:05:22 · 1745 阅读 · 0 评论