Salve,
ho fatto un programma che dovrebbe convertire una serie di numeri decimali nei corrispondenti binari a 10 bit in notazione modulo e segno.
Non riesco assolutamente a capire perchè il programma funziona(bene) solo sul primo numero. Per esempio:


Uploaded with ImageShack.us
La parte di codice riguardante la conversione è il seguente;
codice:
void elabora(int dim, int dec[M], char str[][10])
{
    int i,a,k,z;
    for(i=0;i<dim;i=i+1)                 /*Inserisco il bit indicante il segno*/
    {
        if(dec[i]>=0)
        {
            str[i][0]='0';
        }
        else
        {
            str[i][0]='1';
        }
    }
    for(i=0;i<dim;i=i+1)                /*Azzero tutta la stringa*/
    {
        for(k=1;k<10;k=k+1)
        {
            str[i][k]='0';
        }
        str[i][10]='\0';
    }
    for(i=0;i<dim;i=i+1)               /*effettuo la conversione vera e propria*/
    {
        z=9;
        a=dec[i];
        while((a/2)!=0)
        {
            if((a%2)==0)
            {
                str[i][z]='0';
            }
            else
            {
                str[i][z]='1';
            }
            a=a/2;
            z=z-1;

        }
        str[i][z]='1';
    }
}