资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
编写一个程序,对给定的一组概率进行香农编码,并写入文件。= 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 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(”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
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号