05/10/10 18:35
Luk3
Salve, ho appena cominciato a studiare C a scuola e quindi sto provando i primi programmini.
Ho provato a sviluppare un semplice convertitore di numeri da decimale a binario.
L'algoritmo è apposto, ma i risultati della divisione dovrei scriverli in ordine contrario, perchè si fa così!
// Luca Nillavac - 05/10/10 - Decimal To Binary
#include <stdio.h>
#define divisore 2
int main()
{
int nToBin, memorize, resto;
printf("Questo programma converte un numero da decimale a binario");
printf("\nInserisci un numero: ");
scanf("%d", &nToBin);
printf("\n%d = ", nToBin);
while(nToBin!=0)
{
memorize = nToBin/divisore;
resto = nToBin % divisore;
printf("%d", resto);
nToBin = memorize;
}
printf("\n");
return 0;
}
Potrei mettere il risultato in una stringa e ribaltarlo con un ciclo for?
Ultima modifica effettuata da Luk3 05/10/10 18:52
aaa
05/10/10 20:01
Poggi Marco
Ciao! Ho letto il programma, e ho trovato qualcosa che non va nel primo ciclo while
( Il resto non viene memorizzato)
Ecco il ciclo corretto:
while(nToBin)
{
risultato[i++] = nToBin % divisore;
nToBin/=divisore;
}
Ultima modifica effettuata da Poggi Marco 05/10/10 20:03
aaa
05/10/10 20:04
Luk3
Hai cambiato la condizione del while e incrementi subito il contatore giusto?
Però non va ancora arrrg!
#include <stdio.h>
#define divisore 2
int main()
{
int nToBin, i;
int risultato[50];
printf("\nQuesto programma converte un numero da decimale a binario.\n");
printf("Inserisci un numero: ");
scanf("%d", &nToBin);
printf("\n%d = ", nToBin);
i = 0;
while(nToBin>0)
{
risultato[i++] = nToBin % divisore;
nToBin /= divisore;
}
do
{
printf("%d", risultato[i]);
i--;
}while(i!=0);
printf("\n");
return 0;
}
Ultima modifica effettuata da Luk3 05/10/10 20:04
aaa