Programma
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
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
Ci sono alcuni errori di distrazione come i prototipi delle funzioni diversi dalle definizioni. Inoltre la funzione converti() va chiamata così:
oppure così
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
Programma modificato
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
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
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
Avevo fatto alcuni errori stupidi, scusatemi
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

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
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
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
