Salve, sto cercando di scrivere un programma per la conversione di un numero binario in un numero decimale. Il numero binario può essere, a scelta dell'utente da 1 a 5 cifre ma io vorrei che il programma capisca quante cifre ha inserito l'utente.
Il codice scritto è questo:
#include <stdio.h>
int main( void )
{
// Oggetto del programma e richiesta di inserimento di un numero binario da 1 a 5 cifre
puts( "Questo è un programma per la conversione di un numero binario, da 1 a 5 cifre, in un numero decimale.\n\nSi prega di inserire un numero binario.");
int numeroBin;
// Acquisizione del numero binario a numero di cifre sconosciuto
scanf( "%d", &numeroBin );
// Processo di verifica del numero di cifre ed output all'utente di quante sono le cifre binarie da egli inserite
if ( numeroBin < 10 ) {
puts( "Questo è numero binario ad una sola cifra" );
}
if ( numeroBin < 100 ) {
puts( "Questo è numero binario a 2 cifre" );
}
if ( numeroBin < 1000 ) {
puts( "Questo è numero binario a 3 cifre" );
}
if ( numeroBin < 10000 ) {
puts( "Questo è numero binario a 4 cifre" );
}
if ( numeroBin < 100000 ) {
puts( "Questo è numero binario a 5 cifre" );
}
}
Il printscreen è:
Ho provato anche in questo modo ma non so se questa è una scrittura corretta ma comunque non viene il risultato voluto.
Il codice scritto è questo:
#include <stdio.h>
int main( void )
{
// Oggetto del programma e richiesta di inserimento di un numero binario da 1 a 5 cifre
puts( "Questo è un programma per la conversione di un numero binario, da 1 a 5 cifre, in un numero decimale.\n\nSi prega di inserire un numero binario.");
int numeroBin;
// Acquisizione del numero binario a numero di cifre sconosciuto
scanf( "%d", &numeroBin );
// Processo di verifica del numero di cifre ed output all'utente di quante sono le cifre binarie da egli inserite
if ( 1 < numeroBin < 10 ) {
puts( "Questo è numero binario ad una sola cifra" );
}
if ( 10 <= numeroBin < 100 ) {
puts( "Questo è numero binario a 2 cifre" );
}
if ( 100 <= numeroBin < 1000 ) {
puts( "Questo è numero binario a 3 cifre" );
}
if ( 1000 <= numeroBin < 10000 ) {
puts( "Questo è numero binario a 4 cifre" );
}
if ( 10000 <= numeroBin < 100000 ) {
puts( "Questo è numero binario a 5 cifre" );
}
}
Il problema è che se inserisco un numero ad una cifra mi da tutti e 5 gli output come riportato nel printscreen a questo indirizzo:
Grazie...!!