Salve, anzi tutto mi scuso per eventuali errori nella scrittura di questo argomento, ma essendo nuovo (nel senso che questa è la prima volta in vita mia che scrivo un argomento su un qualsiasi forum) non sono a conoscenza di eventuali "buone prassi di scrittura" ecc.
Passo a descrivere il problema: il mio compito è creare un progetto (composto quindi da un main e da funzioni racchiuse in una libreria a sua volta inclusa nel main) che consenta la conversione di una serie di numeri generati casualmente dalla base decimale ad una base scelta dall'utente, che può andare da 2 a 16, passando anche per le altre 13. Il problema sorge quando vado a richiamare la funzione che dovrebbe convertire il numero decimale e visualizzare quello convertito: qualsiasi siano numero e base, vengono sempre visualizzati solo due "0".
riporto qui il codice della funzione incriminata, sperando che qualcuno di voi sappia darmi delucidazioni su dove sia l'intoppo.
Grazie per l'attenzione
#include <stdio.h>
#define BASE_MAX 16
#define CIFRE_MAX 32
int conversione(int numero, int base)
{
if(numero=0){
printf("il numero %d in base %d e' 0\n");
}
char decodifica[BASE_MAX];
char convertito[CIFRE_MAX];
int resto, risultato, k=0;
//riempimento del vettore decodifica
decodifica[0]='0';
decodifica[1]='1';
decodifica[2]='2';
decodifica[3]='3';
decodifica[4]='4';
decodifica[5]='5';
decodifica[6]='6';
decodifica[7]='7';
decodifica[8]='8';
decodifica[9]='9';
decodifica[10]='A';
decodifica[11]='B';
decodifica[12]='C';
decodifica[13]='D';
decodifica[14]='E';
decodifica[15]='F';
//conversione del numero decimale in base scelta
do{
resto=numero%base;
risultato=numero/base;
convertito[k]=decodifica[resto];
printf("%c", convertito[k]);
k++;
} while(risultato!=0);
//visualizzazione del numero convertito
for(k=k; k>0; k--){
printf("%c",convertito[k-1]);
}
return 0;
}