|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
[C] Cambio base ricorsivo
Ciao
Devo fare un programma ricorsivo che mi converta un numero in base 10 in un numero in base b. Ho provato a scrivere il codice facendo riferimento alla versione iterativa ed è venuta fuori una cosa del genere: Codice:
#include <stdio.h>
#define N 32
void cambiobase(int a[], int, int, int);
void stamparray(int a[]);
int main(void){
int num, base;
int a[N]={0};
printf("Inserisci il numero: ");
scanf("%d", &num);
printf("Inserisci la base: ");
scanf("%d", &base);
cambiobase(a, num, base, N-1);
return 0;
}
void stamparray(int a[]){
int i;
char alfabeto[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for(i=0; i<N; ++i)
printf("%c", alfabeto[a[i]]);
}
void cambiobase(int a[], int n, int b, int i){
if(n==0)
stamparray(a);
else
a[i]==n%b;
cambiobase(a,n/b,b,i-1);
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
upp
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Sono riuscito a togliere il problema del loop infinito, ma rimane il problema che mi stampa tutti 0. Sembra come non riuscisse a passare l'array alla funzione stampa.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:03.



















