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