首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为啥前面的一些输出不见了

2013-04-20 
为什么前面的一些输出不见了?# include stdio.h# include time.h# include stdlib.h# define A 4000

为什么前面的一些输出不见了?
# include "stdio.h"
# include "time.h"
# include "stdlib.h"
# define A 4000
# define M 4
# define N 7

/*****************************************************************************************************************/
// 该函数是初始化函数
// 作用:随机产生信源,并将信源存放到数组b中,初始化数组e,使它的初值是0
// 入口参数:bb(信源)
// 出口参数:k1(代表信源个数)
/*****************************************************************************************************************/

int init(int bb[A/M][M])                   
{
int i=0,j,k1;
printf("\n 随机产生%d个二元(%d,%d)汉明码的信源:",A/4,N,M); 
    srand( (unsigned)time( NULL ) ); 
    for( i = 0; i < A/4; i++ )
       for( j = 0; j < M; j++ )
          { 
           bb[i][j]=rand()%2;
          }
k1=A/4;
return k1;
}

/*****************************************************************************************************************/
// 该函数是输出函数
// 作用:输出生成矩阵
// 入口参数:g(生成矩阵)
// 出口参数:没有
/*****************************************************************************************************************/

void print1(int g[M][N])           
{
int i,j;
printf("\n 生成矩阵是:\n             ");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%d ",g[i][j]);
printf("\n             ");
}
}

/*****************************************************************************************************************/
// 该函数是输出函数
// 输出校验矩阵
// 入口参数:h(校验矩阵)
// 出口参数:没有
/*****************************************************************************************************************/

void print2(int h[N-M][N])       
{
int i,j;
printf("\n 校验矩阵是:\n             ");
for(i=0;i<N-M;i++)
{
for(j=0;j<N;j++)
printf("%d ",h[i][j]);
printf("\n             ");
}
}

/*****************************************************************************************************************/
// 该函数是求码字函数
// 作用:求出要传输的的码字
// 入口参数:n(信源个数),gg(生成矩阵),cc(信源生成的码字),bb(信源)
// 出口参数:没有
/*****************************************************************************************************************/

void SYard(int n,int gg[M][N],int cc[M][N],int bb[A/M][M])   
{
int i,j,k,t;
for(i=0;i<n;i++)
{
for(j=0;j<N;j++)      // 码字cc[][]=信源bb[][]*生成矩阵gg[][],用for循环实现
{
t=0;
for(k=0;k<M;k++)
t+=bb[i][k]*gg[k][j];
cc[i][j]=t%2;     // %2是为了让它们之和小于2
}
}
}





/*****************************************************************************************************************/
// 该函数是输出函数


// 作用:输出要传输的码字
// 入口参数:n(信源个数),cc(发送的码字)
// 出口参数:没有
/*****************************************************************************************************************/

void output(int n,int cc[A/M][N])
{
int i,j;
    for(i=0;i<n;i++)
{printf("\n 要传输的码字  \n");
printf("  ");
for(j=0;j<N;j++)
printf("%d",cc[i][j]);printf("       ");
printf("\n");
}
}




/*****************************************************************************************************************/
// 该函数是主函数
// 作用:调用其他函数,实现其功能,并固定屏幕
/*****************************************************************************************************************/

void main()                    
{
int k,
G[M][N]={{1,0,0,0,1,0,1},{0,1,0,0,1,1,1},{0,0,1,0,1,1,0},{0,0,0,1,0,1,1}},   // 生成矩阵
    H[N-M][N]={{1,1,1,0,1,0,0},{0,1,1,1,0,1,0},{1,1,0,1,0,0,1}},                 // 校验矩阵

        // 数组b存放信源,数组c存放要发送的码字,

        b[A/M][M],c[A/M][N];

    k=init(b) ;          // 初始化函数

print1(G) ;           // 输出生成矩阵
   
print2(H) ;            // 输出校验矩阵

SYard(k,G,c,b);        // 求出要传输的的码字

   output(k,c);

getchar()   ;          // 固定屏幕
}

热点排行