salve, ho scritto questo programma, ma in output non ottengo il risultato corretto, ad esempio inserendo come numero 8 ottengo 100 quando dovrebbe essere 1000, cioè è come se il programma "saltasse" un iterazione qualcuno saprebbe dirmi come mai?
sono convinto si tratti di una sciocchezza, ma purtroppo non risco a trovarla![]()
codice:#include <stdio.h> #include <stdlib.h> #define size (sizeof(int)*8) int* dec_bin(int); int main() { int n,*p,i; printf("inserire numero decimale da convertire: "); scanf("%d",&n); p=dec_bin(n); printf("risultato: "); for(i=0;i<size;i++) printf("%d",p[i]); return 0; } int* dec_bin(n) { int i,*p; n=n+1; i=size; p=(int*)calloc(size,sizeof(int)); if(p != NULL) { while(i>0 && n!=0) { if(n%2!=0) p[i]=1; n=n/2; i--; printf("%d ",n); } } return p; }

Rispondi quotando
