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'; } }


Rispondi quotando
Come si spiega il modo in cui stampava i valori? Cioè perchè tenendo la dimensione fisica a 10 si limitava a stampare solo il primo?
