C语言
赵侠客
一个独立思考的开发者
展开
-
C/C++数组指针与指针数组详解
1.指针数组2.数组指针3.案例#include void main(){ int a[][3]={ {1,2,3}, {4,5,6}, {7,8,9} }; int (*p)[3]=new int[3][3]; //数据组指针 int *q[3]; //指针数组 q[0]=a[0]; q原创 2013-10-21 15:41:22 · 3189 阅读 · 0 评论 -
C语言浮点型数据存储结构
1.float类型float类型占四个字节,每个字节占8位,总共32位,其内存结构如下图:31位为符号位:0表示正数,1表示负数31~23位:共8位表示指数位,内存存储数据从0~2^8-1=255,由于指数可以是正也可以是负,所以指数位采用移位存储表示数据,8位有符号有可表示数据从-127~128,所以指数位表示的实际指数应该是无符号位数减去127,例如0000 0原创 2013-10-20 17:01:22 · 15740 阅读 · 2 评论 -
ACM典型试题--古代密码(二)
1. 题目描述古罗马帝国有两种简单的加密算法,第一种按照顺序替换,例如把a-y 分别替换成b-z,把z 替换成a,这样可以把VICTORIOUS 替换成WJDUPSJPVT。第二种是打乱顺序消息的顺序,例如的含义就是把第二个字符放在第一位,而把第一位的字符放到第二位,然后是第5 个字符,第4 个字符,…,可以把VICTORIOUS 替换成IVOTCIRSUO。后来发现同时使原创 2013-10-19 12:15:37 · 2404 阅读 · 0 评论 -
ACM经典问题--布线问题(三)
1. 问题描述印刷电路板将布线区域划分成 n×m 个方格阵列,要求确定连接方格阵列中的方格a 点到方格b 的最短布线方案。在布线时,电路只能沿直线布线,为了避免线路相交,已布了线的方格做了封锁标记,其他线路不允许穿过被封锁的方格。问线路至少穿过几个方格。输入格式输入的第一行是两个整数 n 和m(2输出格式输出最短的布线方案的长度,若不存在,则输出-1。输入样例7 7原创 2013-10-19 17:12:42 · 4367 阅读 · 0 评论 -
ACM典型试题--简单的加密算法(一)
1. 题目描述简单的加密算法:把字符串中的字符替换成另外的字符,只有对方知道如何替换就可以解密。要求根据给定的加密方法和密文,得到原始消息。输入格式第一行输入密钥,第二行输入密文。输出格式对输入的数据输出解密后的原始信息。输入样例eydbkmiqugjxlvtzpnwohracsfKifq oua zarxa suar bti yaagrj fa xtfgrj原创 2013-10-19 11:59:18 · 2695 阅读 · 0 评论 -
(c语言)二叉树中序线索(数据结构十七)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #include #define TRUE 1#define FALSE 0原创 2013-10-18 20:37:43 · 889 阅读 · 0 评论 -
(C语言)二叉树层次遍历(数据结构十六)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #include #define TRUE 1#define FALSE 0原创 2013-10-18 19:15:20 · 2126 阅读 · 0 评论 -
堆排序----(排序算法六)
1.算法原理2.算法实现#include //printArray打印出数组void printArray(int a[],int size){ printf("数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %x ",a[i]); }原创 2013-10-24 18:48:14 · 843 阅读 · 0 评论 -
臭皮匠排序(Stooge Sort)----(排序算法十二)
1.算法原理2.代码实现#include //printArray打印出数组void printArray(int a[],int size){ printf("数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %d ",a[i]); }原创 2013-10-24 22:02:57 · 2872 阅读 · 0 评论 -
float类型最大值和最小值
1.了解float存储结构float存储结构请看另一篇文章http://blog.csdn.net/whzhaochao/article/details/128858752.float最大值float结构如下图:要想获得正最大值,那就令符号位为0,指数位和尾数位全为1,则应该是最大会是,最大值应该为:1.11111111111111111111111*2^128=(2-原创 2013-10-20 19:54:14 · 124060 阅读 · 12 评论 -
归并排序(Merging Sort)----(排序算法十三)
1.算法原理 2.代码实现#include //printArray打印出数组void printArray(int a[],int size){ printf("数组为:%d ",a[0]); for (int i=1;i<size;i++) { printf(" %d ",a[i]); }原创 2013-10-26 11:23:32 · 870 阅读 · 0 评论 -
C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
1.普通传递void f( int p){ printf("\n%x",&p); printf("\n%x",p); p=0xff;}void main(){ int a=0x10; printf("\n%x",&a); printf("\n%x\n",a); f(a); printf("\n%x\n",a);}2.引用传递void f(原创 2013-10-20 21:57:35 · 17061 阅读 · 2 评论 -
ADM CPU安装mac os x系统
1.硬件为:电脑型号 联想 ThinkPad Edge 笔记本电脑操作系统 Windows 7 旗舰版 64位 SP1 ( DirectX 11 ) 处理器 AMD Athlon(速龙) II P340 双核主板 联想 019957C (AMD 760G/780G/780V/785G/790GX/880G/890GX)内存 4 GB ( 尔必达 DDR3 1333MHz / 金士顿原创 2013-12-26 21:35:24 · 1765 阅读 · 0 评论 -
快速排序----(排序算法四)
1.算法原理2.代码实现#include void printArray(int a[],int size){ printf("数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %d ",a[i]); } printf("\n");原创 2013-10-23 15:32:03 · 967 阅读 · 0 评论 -
折半插入排序法---排序算法(二)
1.排序原理2.代码#include void printArray(int a[],int size){ printf("数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %d ",a[i]); } printf("\n"); }原创 2013-10-23 11:53:17 · 1372 阅读 · 0 评论 -
直接插入排序法---排序算法(一)
1.排序原理2.代码#include //打印数组void printArray(int a[],int size){ printf("\n数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %d ",a[i]); }}void main(){ //a[0]为监视哨 int a[8]={0,38,原创 2013-10-22 20:46:32 · 1857 阅读 · 0 评论 -
c/c++多维数组动态分配与释放
1.一维void main(){ int a[3]={1,2,3}; int *b; b= new int[3]; b[0]=*a; *(b+1)=a[1]; b[2]=*(a+2); delete []b;} 2.二维#include void main(){ int a[][3]={ {1,2,3}, {4,5,6},原创 2013-10-21 16:42:54 · 2091 阅读 · 0 评论 -
冒泡排序法---排序算法(三)
1.排序原理每次交换将最大的移到顶端,将像是水泡一样往上冒,所以将冒泡排序例如:7 6 5 4 3 2 1第一次 7>6所以交换7和6得6 7 5 4 3 2 1第二次 7>5所以交换7和5得6 5 7 4 3 2 1第三次 7>4所以交换7和4得6 5 4 7 3 2 1第四次 7>3所以交换7和3得6 5 4 3 7 2 1 第五次 7>2所以交换7和原创 2013-10-23 14:55:13 · 1220 阅读 · 0 评论 -
基数排序(Radix Sort)----(排序算法十四)
1.排序原理2.代码实现#include #include #define RADIX_10 10 //整形排序#define KEYNUM_31 3 //关键字个数,这里为整形位数//printArray打印出数组 void printArray(int a[],int size){ printf("数组为:%d ",a[0]);原创 2013-10-27 15:55:28 · 1398 阅读 · 4 评论 -
for循环执行效率
1.情况1#include #include #include #include #define A 10000#define B 10#define num 100000void main(){ double a[A][B]; double b=0; int t1=clock(); for (int n=0;n<num;n++) { for (in原创 2013-10-21 20:25:09 · 1639 阅读 · 0 评论 -
奇偶排序(OddEven Sort)----(排序算法十一)
1.算法原理2.代码实现#include //printArray打印出数组void printArray(int a[],int size){ printf("数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %d ",a[i]); }原创 2013-10-24 21:56:14 · 1327 阅读 · 0 评论 -
地精排序Gnome Sort ----(排序算法十)
1.算法原理 2.算法代码#include //printArray打印出数组void printArray(int a[],int size){ printf("数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %x ",a[i]); }原创 2013-10-24 21:38:50 · 920 阅读 · 0 评论 -
(C语言)双向链表实现案例(数据结构六)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #define TRUE 1#define FALSE 0#define O原创 2013-10-11 11:52:33 · 847 阅读 · 0 评论 -
(C语言)单链表的链式实现(数据结构二)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #define TRUE 1#define FALSE 0#define OK原创 2013-10-09 21:38:03 · 1895 阅读 · 0 评论 -
(C语言)单链表的顺序实现(数据结构一)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #define TRUE 1#define FALSE 0#define OK原创 2013-10-09 19:31:51 · 1274 阅读 · 0 评论 -
(C语言)分支界限法求解旅行商(TSP)问题
1.代码:#include #include #define NoEdge 1000struct MinHeapNode{ int lcost; //子树费用的下界 int cc; //当前费用 int rcost; //x[s:n-1]中顶点最小出边费用和 int s; //根节点到当前节点的路径为x[0:s] int *x; //需要进一步搜索原创 2013-10-14 20:55:55 · 9892 阅读 · 3 评论 -
C语言常用字符串操作函数
mystring.h文件内容://常用字符串操作#ifndef MYSTRING_H#define MYSTRING_H//计算字符昨晚上度int charLength(char* ch){ int i=0; while(*ch++!='\0'){ ++i; } return i;}//将src字符串复制到ch中void Mystrcpy(char* ch,ch原创 2013-10-09 11:44:08 · 748 阅读 · 0 评论 -
C语言函数指针做函数参数案例
本案例利用函数指针当作函数的参数,函数 add(int (*pf)(int*,int),int *a,int n)可以做到传入addOne就对数组a中每个数值加1,传入addTwo就对数组a中每个数值加2,案件具体代码如下:#include //对数组每个数加1int addOne(int *a,int n){ for(int i=0;i<n;i++) ++a[i]; ret原创 2013-10-09 12:38:01 · 2999 阅读 · 0 评论 -
C语言函数指针数组简单案例
本案例运用函数指针数组分别去调用函数,案例中定义一个长度为3的函数指针数组,分别指向3个函数,然后运用一个for循环分别调用三个函数,相信此案件能让你很好的理解函数指针数组的运用,具体代码如下:#include //对数组每个数加1int addOne(int *a,int n){ for(int i=0;i<n;i++) ++a[i]; return 1;}//对数组每原创 2013-10-09 12:25:02 · 1257 阅读 · 0 评论 -
C语言函数指针简单应用
本案例运用函数指针去调用不同函数,代码简单易懂,让你快速撑握C语言函数指针的使用方法,具体代码如下:#include //对数组每个数加1void addOne(int *a,int n){ for(int i=0;i<n;i++) ++a[i];}//对数组每个数加2void addTwo(int *a,int n){ for(int i=0;i<n;i++) a原创 2013-10-09 12:03:28 · 879 阅读 · 0 评论 -
(C语言)栈的线性结构实现(数据结构八)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #define TRUE 1#define FALSE 0#define O原创 2013-10-11 16:44:49 · 1147 阅读 · 0 评论 -
(C语言)栈的链式实现(数据结构九)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #define TRUE 1#define FALSE 0#define O原创 2013-10-11 17:46:49 · 1072 阅读 · 0 评论 -
(C语言队列的顺序实现(数据结构十)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #define TRUE 1#define FALSE 0#define O原创 2013-10-11 21:08:26 · 1300 阅读 · 0 评论 -
鸡尾酒排序Cocktail Sort(排序算法九)
1.算法原理 2.代码实现#include //printArray打印出数组void printArray(int a[],int size){ printf("数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %x ",a[i]); }原创 2013-10-24 21:28:17 · 2246 阅读 · 0 评论 -
鸽巢排序Pigeonhole Sort----(排序算法八)
1.算法原理鸽巢排序是对桶排序算法的改进,只是桶中装对应下标放元素出现的次数待排序数组:a[14] ={ 6, 6, 2, 2, 2, 4, 1, 1, 1, 5, 5, 5, 5, 9 };桶中: bucket[10]=0 3 3 0 1 4 2 0 0 11出次3次,所以bucket[1]=32出次3次,所以bucket[2]=34出次1次,所以b原创 2013-10-24 19:50:57 · 3618 阅读 · 4 评论 -
简单选择排序算法----(排序算法五)
1.算法原理 2.代码实现#include //printArray打印出数组void printArray(int a[],int size){ printf("数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %d ",a[i]); }原创 2013-10-24 11:22:04 · 886 阅读 · 0 评论 -
(C语言)二叉树非递归后序(数据结构十五)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #include #define TRUE 1#define FALSE 0原创 2013-10-18 16:20:28 · 827 阅读 · 0 评论 -
(C语言)二叉树非递归遍历前序和中序(数据结构十四)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #include #define TRUE 1#define FALSE 0#de原创 2013-10-17 11:56:11 · 1067 阅读 · 0 评论 -
(C语言)二叉树实现(数据结构十三)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #include #define TRUE 1#define FALSE 0原创 2013-10-16 22:04:19 · 872 阅读 · 0 评论 -
(C语言)串定长顺序存储实现(数据结构十二)
1.数据类型定义在代码中为了清楚的表示一些错误和函数运行状态,我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义://定义数据结构中要用到的一些变量和类型#ifndef HEAD_H#define HEAD_H#include #include #include #include #define TRUE 1#define FALSE 0原创 2013-10-14 20:25:55 · 1540 阅读 · 0 评论