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