Programma

n.icola114
Ciao,
ho scritto un semplice programma per la conversione di un numero decimale in binario

#include
#include

int converti(int, int);
int stampa(int, int);

int main(void){
int numero;
int bit[8];

printf("Inserisci un numero 0 : 255\n");
scanf("%d", &numero);

converti(bit[0], numero);

system("pause");
}
int converti(int *bit, int numero){
int indice = 0;

do{
bit[indice] = numero%2;
numero /= 2;
indice++;
}while(numero%2 != 0);

stampa(indice, bit[0]);

return 0;
}
int stampa(int *bit, int indice){
do{
printf("%d", bit[indice]);
indice--;
}while(indice >= 0);

return 0;
}

non so se funziona
perchè non mi è ancora chiara la gestione dei vettori come puntatori,
il problema però è che non viene neanche eseguito e non ne capisco il motivo

Risposte
anonymous_be1147
Ci sono alcuni errori di distrazione come i prototipi delle funzioni diversi dalle definizioni. Inoltre la funzione converti() va chiamata così:

converti(&bit[0], numero);

oppure così

converti(bit, numero);

Nel secondo caso, sarebbe meglio rinominare l'array bytes per chiarezza, oppure bits e usare l'aritmetica dei puntatori.
La condizione che termina il ciclo do... while all'interno della funzione converti() non è corretta (prova a pensare a quando tu termini di eseguire la divisione per 2 per calcolare manualmente la rappresentazione binaria di un numero).
Infine, per come hai impostato il programma, devi richiamare la funzione stampa() in questo modo

stampa(&bit[0], indice - 1);

Programma modificato


n.icola114
Grazie stan,
sto cercando infatti di imparare a gestire il passaggio dei vettori come parametri,
ma il problema che mi ha bloccato è che il programma non va neanche in esecuzione,
l'unica cosa che il compilatore mi dice è link error e non capisco cosa voglia dire

n.icola114
Avevo fatto alcuni errori stupidi, scusatemi :oops:
al di là di questi errori, la cosa che non mi convinceva era link error
ma adesso credo che questo errore stia ad indicare qualcosa di sbagliato nella gestione delle funzioni

un'altra cosa, come fate a fare quel blocco codice ?

ciao

maalla1
Ciao...

ho bisogno di un grosso aiuto su un progetto Java che devo portare a termine, ma non so come correggere gli errori e le mancanze che ho.

Mi potete dare una mano???
Preferirei via mail...

Vi prego almeno di rispondermi (anche in caso negativo).

Attendo fiducioso.

Grazie

:-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.