费诺编码的C语言实现实验论文
更新时间:2023-11-17 23:07:01 阅读量: 教育文库 文档下载
- 费诺编码实验总结推荐度:
- 相关推荐
#include
#define Bmax 10 //最长码长度 #define Smax 20 //数组最大长度
/************定义\位\的结构**********/ struct Bit { char b[Bmax]; //定义码长度数组的数据类型 字符型 组成成员 int last; };
/***********定义符号的结构**********/
typedef struct symbol //共用体结构 { char c; //定义信源符号c为字符型 float probability; //定义符号概率probality为浮点型 struct Bit bit; //嵌套的结构体 }sbl;
sbl s[Smax]; //S数组最大容量符号 /********输入符号的符号概率********/ void input(int n) { int i; //定义变量i类型 整型 int c; //定义变量c类型 还是整型的好,字符型的也可以 printf(\请输入符号及符号概率\\n\ //打印出提示语\请输入符号及符号概率\ c=getchar(); for(i=0;i /***********用冒泡法排序**********/ void sort(int n) { float t; //定义变量t为浮点型 char a; //定义变量a为字符型 int i,j; //定义循环变量i,j为整型 for(i=1;i 引进的变量a和t分别交换其符号和概率 {t=s[j].probability; a=s[j].c; s[j].probability=s[j+1].probability; s[j].c=s[j+1].c; s[j+1].probability=t; s[j+1].c=a; } //因此,此函数实现了各符号和其所对应的概率,按照概率的大小,从大到小排序 } /************分组函数************/ void group(int n) //定义函数,无返回值 { int i,pmid,plow,phigh; //定义变量为整型 pmid=phigh=n; //给两个变量赋值为n plow=0; //给变量赋值为0 for(i=0;i /**依次将按排好序的符号概率进行近似1:1分成两大组**/ void group1(int low,int mid,int high) //定义函数(低位,中位,高位) { float d,dmin; //定义变量d,dmin为浮点数 d=0; //给d赋初值为0 int i; //定义循环变量i为整型 if(high==low+1) //如果低位和高位只相差1,也就是它们两相邻 return; //则返回 for(i=low;i dmin=d-2*s[low].probability; //dmin= for(i=low+1;i group1(low,mid,mid); //将一组分为了两组,中间为零界mid group1(mid,high,high); } /****对各组赋予一个二进制码元“0”和“1”***/ void code(int low,int mid,int high) //编码 { int i; //定义循环变量i为整型 for(i=low;i /*****输出符号,符号概率及编码****/ void output(int n) { int i,j; printf(\请输出符号,符号概率及编码\\n\ 符号,符号概率及编码\ for(i=0;i /***********译码函数**************/ void decode(int n,char a[100]) { int i=0,j; char s2[100]; s2[0]='\\0'; while(i //如果i小于中间的数 //则给这组数赋值为\ //否则就给这组数赋值为\ //输出编码函数,n为整型 //定义循环变量i,j //打印提示语\请输出 //i从0到n,大循环执行n-1次 //每次的大循环都输出一个 //输出编码 //译码 //定义变量整型。并给i赋初值=0 //数组s2,字符型 //数组s2的第一个元素为\\n //当i<数组a的长度时,执行以下程序 { char temp[2]; //定义数组temp,字符型 temp[0]=a[i]; temp[1]='\\0'; strcat(s2,temp); for(j=0;j void main() //主函数 { int n; //定义变量 char a[100]; //数组最大人容量为100 printf(\请注意当显示器再次输出“请输入符号个数时”说明输入的n值有误!\\n\ do{ printf(\请输入符号个数0
正在阅读:
费诺编码的C语言实现实验论文11-17
浅析《道德经》中的设计理念06-11
2017人教版小学二年级数学下册竖式计算天天练11804-08
缺货成本包括失销成本和( )。 A.空间成本B.库存持有成本C.保留订04-20
德州市经济开发区项目东区南部社区B区项目施工组织总设计07-09
XML整体设计03-09
2011华为面试记录06-04
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 编码
- 语言
- 实验
- 实现
- 论文
- 费诺
- 2017-2018学年高中物理人教版选修3-3教学案:第八章 第1节 气体的等温变化 Word版含解析
- GLP-1葡萄糖浓度依赖性促胰岛素分泌的分子机制探讨
- 古代文学史考研名词解释
- 如何当好中层干部
- 社会心理学(如何提高交往能力)
- 江海名师零距离2015届高三数学二轮总复习专题15:解决解析几何中的综合问题
- AQ2047-2012水泥工厂筒型储运库人工清库安全规程
- 氧化还原滴定法答案
- 岗位练兵题1
- 辛苦整理-有限责任公司自愿解散基本流程及需要注意的事项
- B2C定价
- 关于评选第五批无锡市中小学教学能手和第六批江阴市中小学教学能手的通知
- 配气机构常见故障诊断与维修 陈兴涛 43
- 基因治疗的现状及策略
- 十位名人的职业生涯故事
- 二、信息化试点自评报告(教育信息化试点网上评审材料)
- 七生上3:《第二章 生物与环境的关系1》导学案-吴为芳
- 化验室一些常用分析仪器的自校准规程
- 消防工程专业毕业实习报告范文
- 八年级上数学第一次月测试题(含答案)