Ciao a tutti,dovrei realizzare un programma che,come da titolo,cambi la base di un certo numero intero,per esempio in base 10,in un'altra base compresa tra 1 e 9.
Sono un pò confuso perchè si stanno presentando degli errori strani.
Iniziavo assegnando ad un vettore i vari resti,quindi stampo col for per vedere cosa mi ha calcolato e mi stampa i valori al contrario,inverto il for e mi stampa gli stessi identici valori.
Allora provo a mettere una printf prima all'interno del do-while e ora dentro al vettore ci sono solo zeri.
Quindi ho ripristinato il for e ora mi stampa solo zero.......che caspita sta succedendo?ho scoperto una dimensione alternativa?
Il codice,ancora in fase di costruzione è qua sotto.
Il secondo if è anche peggio,non capisco perchè quando entra in quell'if,precisamente quando raggiunge il do-while il processore inizia a lavorare come un pazzo e non conclude nulla.
Ho provato con il classico pezzo di carta e matita ma a me sembra che i calcoli siano corretti......
Non so che pesci pigliare sinceramente....
Grazie mille a tutti..
codice:#include <stdio.h> #include <stdlib.h> int main() { int i,j,grado,graux,Nelem,rest,result,a,mult,B1,B2,count; int vect[20]={0}; printf("\n\n indicare base del numero scelto\n"); scanf("%d",&B1); printf("\n\n indicare base in cui convertire il numero scelto \n\n"); scanf("%d",&B2); if(B1>B2) { printf("\n\n inserire numero scelto \n\n"); scanf("%d",&a); i=0; count=0; do { rest=a%B2; vect[i]=rest; a=a/B2; i++; count++; printf("%d",rest); } while(a!=0); for(j=0;j<count;j++) { printf(" %d ",vect[i]); } } if(B1<B2) { printf("\n\n quante cifre contiene? \n\n"); scanf("%d",&Nelem); grado=Nelem-1; graux=grado; printf("\n\n inserire cifre\n\n"); for(i=0;i<Nelem;i++) { scanf("%d",&vect[i]); } for(i=0;i<Nelem;i++) { mult=1; do { mult=mult*B1; graux--; } while(graux!=0); vect[i]=vect[i]*mult; } result=0; for(i=0;i<Nelem;i++) { result=result+vect[i]; } } system("pause"); return 0; }
......odio i cambi di base

che caspita sta succedendo?ho scoperto una dimensione alternativa?
odio i cambi di base
Rispondi quotando