資源簡介
這是我信息論課程設計中算術編碼的源代碼,純語言實現 一般學過c語言的都看得懂
代碼片段和文件信息
#include“stdio.h“
#include“string.h“
#define?N?10
int?NUM;
char?Orin[100]OUT[100];
long?double?encode;
typedef?struct?
{
???????char?c;
???????long?double?Chance;
???????long?double?SumCh;
???????
}CO;
CO?code[N];
void?Encode(char?s[]CO?code[]);
void?Decode(?char?s[]CO?code[]int?n);
main()
{
??????int?i;
??????printf(“請輸入碼源數目:“);
??????scanf(“%d“&NUM);
??????for(i=0;i ??????{
??????
??printf(“請輸入碼源:“);
??getchar();
??scanf(“%c“&code[i].c);??????
??printf(“請輸入碼源%c的發生概率:“code[i].c);
?????? ??scanf(“%lf“&code[i].Chance);?????
??for(int?j=0;j ??{????????
??code[i].SumCh+=code[j].Chance;?
??
??}
??printf(“%.10lf\n“code[i].SumCh);
????????????????????????
??}??????
??????printf(“請輸入需要編碼的字符串:“);
??????scanf(“%s“Orin);
??????Encode(Orincode);
??Decode(OUTcodestrlen(Orin));
?}
??????
??????
??????void?Encode(char?s[]CO?code[])
??????{
???????????int?countij;
???long?double?highlow;
???????????count=strlen(s);
???????????for(i=0;i ???????????{??????????
???for(j=0;j ???{ ???
???if(s[i]==code[j].c&&i==0)?????????????????????????????????????????????????????????????????????????????????????????? ?? ???
?{ ? ??? ??
???low=code[j].SumCh;????????????????????????????????????
???high=code[j].SumCh+code[j].Chance;?
???printf(“%.10lf????????
- 上一篇:基于QT的電子地圖設計與實現
- 下一篇:課程設計學生宿舍管理系統C++
評論
共有 條評論