最后的hdb3码用方波输出怎么实现?[code=c]
请填写代码
[/code]#include<time.h>
#include<stdlib.h>
#include<iostream.h>
void main()
{
    int a[20];char b[20];
    int i,j,n,k;
    cout<<"请选择:"<<"1.随机生成数列"<<"2.手动输入"<<endl;
    cin>>k;
    if(k==1)
        {
     srand((int)time(0));
     cout<<"随机数列为:";
    for(i=0;i<20;i++)
    {
      j=(int)(2.0*rand()/(RAND_MAX+1.0));
      cout<<j;
      a[i]=j;
    }//以上是产生二进制的随机数列
    cout<<endl;}
    if(k==2)
    {    
        cout<<"input 20 numbers:";
    cin>>b;
    for(j=0;j<20;j++)
    {
        if(b[j]=='0')
            a[j]=0;
        if(b[j]=='1')
            a[j]=1;
    }
    }//以上将手动输入的char型转成int型
    for(i=-1,j=0;j<20;j++)
    {
        if(a[j]==1)
        {
            
            a[j]=-i;i*=-1;
        }
    }
    cout<<"AMI: ";//输出ami码
    for(j=0;j<20;j++)
    {
        if(a[j]==0)
            cout<<"  "<<a[j];
        if(a[j]==1)
            cout<<" +"<<a[j];
        if(a[j]==-1)
            cout<<" "<<a[j];
    }
    cout<<endl;
    for(i=-1,j=0;j<=16;j++)
    {
        if((a[j]||a[j+1]||a[j+2]||a[j+3])==0)
        {
            a[j+3]=-i;i*=-1;
            if(a[j-1]-a[j+3]!=0)
            {
                a[j]=a[j+3];
                for(n=j+4;n<20;n++)
                        a[n]*=-1;
            }
            j+=3;
        }
    }//生成hdb3码
    cout<<"前一破坏点为负"<<endl<<"HDB3:";
    for(j=0;j<20;j++)
    {
        if(a[j]==0)
            cout<<"  "<<a[j];
        if(a[j]==1)
            cout<<" +"<<a[j];
        if(a[j]==-1)
            cout<<" "<<a[j];
    }
    cout<<endl;
}