Come chiedere al programma di controlare di quante cifre è il numero inserito??

di il
2 risposte

Come chiedere al programma di controlare di quante cifre è il numero inserito??

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

2 Risposte

  • Re: Come chiedere al programma di controlare di quante cifre è il numero inserito??

    Controlla bene gli if, sei sicuro che sono giusti ?
  • Re: Come chiedere al programma di controlare di quante cifre è il numero inserito??

    Ok...scusate se vi ho fatto una domanda stupida.... Ho risolto così:
    
    #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 > 0 ) {
            if ( numeroBin < 10 ) {
            puts( "Questo è numero binario ad una sola cifra" );
            }
        }
        if ( numeroBin >= 10 ) {
            if ( numeroBin < 100 ) {
            puts( "Questo è numero binario a 2 cifre" );
            }    
        }
        if ( numeroBin >= 100 ) {
            if ( numeroBin < 1000) {
            puts( "Questo è numero binario a 3 cifre" );
            }
        }
        if ( numeroBin >= 1000 ) {
            if ( numeroBin < 10000 ) {
            puts( "Questo è numero binario a 4 cifre" );
            }
        }
        if ( numeroBin >= 10000) {
            if ( numeroBin < 100000 ) {
            puts( "Questo è numero binario a 5 cifre" );
            }   
        }
        if ( numeroBin >= 100000 ) {
            puts( "Il numero binario inserito ha più di 5 cifre.\nSi chiede di inserire un numero binario da 1 a 5 cifre, per piacere." );
        }
        
    }
    
    Se conoscete un altro modo è ben accetto )) Grazieee! ;-D
Devi accedere o registrarti per scrivere nel forum
2 risposte