salve.. devo scrivere un programma che converta un numero da base 10 a base b scelta da tastiera..ho provato a fare in questo modo:
#include "util.h"
void convertiNumero(stringa s, int &num, int &base, int&riemp){
int j=-1,i=-1;
int* app=NULL;
app=new int [max-1]; //Puntatore ad array
if (app[j]<=1){ //Se il numero diviso è <=1, procedi alla stampa al contrario della stringa
stampaStringa (s, riemp); //e svuota l'array dinamico
delete [] app;
}
else{
app[-1]=num;
riemp++;
i++;
j++;
if(j==0){ //La prima volta che il ciclo viene eseguito, dividi per il numero dato da tastiera
app[j]=(app[0])/(base);
s[i]=(app[0])%(base); //Inserisci nella stringa che verrà stampata a video il resto della divisione tra interi
}
else{ //Tutte le altra volte, dividi il numero del ciclo precedente con la base e memorizza il risultato
app[j]=(app[j-1])/(base);
s[i]=(app[j-1])%(base);
}
convertiNumero (s, app[j], base, riemp); //Ricorsione: ripeti la procedura con un numero inferiore a num finquando app[j]==1
}
}
void stampaStringa (stringa s, int &riemp){
int i;
for (i=riemp+1; i>=0; i--)
cout<<s[i]<<"\t";
}
Il programma viene compilato dal dev ma dà dei caratteri strani a video.
Grazie a chiunque voglia aiutarmi.