香农编码C语言

上传人:夏** 文档编号:512189157 上传时间:2023-04-19 格式:DOCX 页数:3 大小:8.34KB
返回 下载 相关 举报
香农编码C语言_第1页
第1页 / 共3页
香农编码C语言_第2页
第2页 / 共3页
香农编码C语言_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《香农编码C语言》由会员分享,可在线阅读,更多相关《香农编码C语言(3页珍藏版)》请在金锄头文库上搜索。

1、编写一个程序,对给定的一组概率进行香农编码,并写入文件。= al a2a3a4史 a6+Jp0.250.250.20.150.10.05p程序结果保存在out.dat文件中。程序代码:#include#include#include#define N 6FILE *fp1,*fp2;void binary(double m,int k)/十 进制小数转换二进制int i;for(i=1;i=k;i+)if(m=0)fprintf(fp2,0”);continue;if(m*2=1)fprintf(fp2,1”);m=m*2-1;int getk(double m)/得 到 K 值double

2、k;k=ceil(-(log10(m)/1.0/log10(2);return (int)k;void add(double a,double b,int n)int i,j;b1=0;for(i=2;in;i+)for(j=1;ji;j+) bi=bi+aj;void sort(double a,int n)/排序int i,j;double t;for(i=1;in-1;i+)for(j=1;jn-1-i;j+) if(ajaj+1) t=aj;aj=aj+1;aj+1=t;void main()float temp;int i;double aN+1,bN+1;if(fp1=fopen(

3、”in.dat”,”rb”)=NULL) printf(不能打开文件! n);exit(1);if(fp2=fopen(out.dat”,a)=NULL) printf(不能打开文件! n);exit(1);for(i=1;iN+1;i+)fscanf(fp1,%f,&temp);ai=temp;sort(a,N+1);for(i=1;iN+1;i+)bi=0;add(a,b,N+1);for(i=1;iN+1;i+)fprintf(fp2,%.4f 编码为:”,ai);binary(bi,getk(ai);fprintf(fp2,n);fclose(fp1);fclose(fp2);printf(编码成功! n);文件in.dat内容:0.250.250.20.150.10.05

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号