c语言实验--字符编码,费诺编码的C语言实现实验论文.doc

费诺编码的C语言实现实验论文

#include //头文件

#include

#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

{

scanf("%c",&s[i].c); //用scanf函数输入符号

scanf("%f",&s[i].probability); //用scanf函数输入符号概率

c=getchar();

}

}

/***********用冒泡法排序**********/

void sort(int n)

{

float t; //定义变量t为浮点型

char a; //定义变量a为字符型

int i,j; //定义循环变量i,j为整型

for(i=1;i

for(j=0;j

if(s[j].probability

{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 gro

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值