encoder.c
来自「译码器工作模拟C语言实现 译码器工作模拟C语言实现」· C语言 代码 · 共 66 行
C
66 行
/* Powered by Peacock */
#include <stdio.h>
#include <math.h>
#define C 10
main()
{
int n;
int k;
int l;
int i,p,q;
int x,y;
int g[C][C][C];
int m[C][C];
int outcode[C];
int buff[C][C];
/*input module*/
printf("Input (n,k,l):\n");
scanf("%d%d%d",&n,&k,&l);
printf("Input info bit group M:\n");
for(i=0;i<=l;i++)
{
printf(" Input m(%d): ",i);
for(p=0;p<=k-1;p++)
{
scanf("%d",&m[i][p]);
}
}
printf("Input the encoder structure:\n");
for(i=0;i<=l;i++) /* l+1 groups , column in graph ----*/
{
for(p=0;p<=k-1;p++) /* k elements in one group , row in graph | */
{
printf(" In m(%d)(%d):\n",i,p);
for(q=0;q<n;q++) /* n */
{
printf(" Relation with [%d] ?(1 for yes,0 for no):",q);
scanf("%d",&g[p][i][q]); /* g[row][column][n]*/
}
}
}
/*matrix caculation*/
for(i=0;i<=l;i++)
{
for(p=0;p<=n-1;p++)
{
for(x=0;x<=k-1;x++)
{
buff[i][p]+=m[l-i][x]*g[x][i][p];
}
}
}
/* manufacture & outcode*/
printf("The output code is:");
for(i=0;i<=n-1;i++)
{
for(p=0;p<=k-1;p++)
{
outcode[i]+=buff[p][i];
}
printf("%d",outcode[i]%2);
}
getch();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?