Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    13

    [C]conversione numeri arbai-romani

    Ciao a tutti,

    Ho bisogno di creare un algoritmo che dato in input un numero arabo lo trasformi in romano.

    Ho già provedduto a farlo, ma una volta eseguito non mi da nnt come output ... potete aiutarmi a trovare l'errore?






    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
        int unita;
        int decine;
        int centinaia;
        int migliaia;
        int num;
    
        printf("Inserisci il numero che vuoi convertire:");
        scanf("%d", &num);
        
        migliaia=num/1000;
        centinaia=(num-(migliaia*1000))/100;
        decine=(num-(migliaia*1000)-(centinaia*100))/10;
        unita=(num-(migliaia*1000)-(centinaia*100)-(decine*10));
        
        switch(migliaia){
               
               case '1': printf("M");
                         break;
               case '2': printf("MM");
                         break;
               case '3': printf("MMM");
                         break;
               case '4': printf("MMMM");
                         break;
               case '5': printf("MMMMM");
                         break;
               case '6': printf("MMMMMM");
                         break;
               case '7': printf("MMMMMMM");
                         break;
               case '8': printf("MMMMMMMM");
                         break;
               case '9': printf("MMMMMMMMM");
                         break;
               
        }
        
        
        switch (centinaia) {
               case '1': printf("C");
                         break;
               case '2': printf("CC");
                         break;
               case '3': printf("CCC");
                         break;
               case '4': printf("CD");
                         break;
               case '5': printf("D");
                         break;
               case '6': printf("DC");
                         break;
               case '7': printf("DCC");
                         break;
               case '8': printf("DCCC");
                         break;
               case '9': printf("CM");
                         break;
        }
        
        
        switch (decine){
               case '1': printf("X");
                         break;
               case '2': printf("XX");
                         break;
               case '3': printf("XXX");
                         break;
               case '4': printf("XL");
                         break;
               case '5': printf("L");
                         break;
               case '6': printf("LX");
                         break;
               case '7': printf("LXX");
                         break;
               case '8': printf("LXXX");
                         break;
               case '9': printf("XC");
                         break;
        }
        
        
        switch (unita){
               case '1': printf("I");
                         break;
               case '2': printf("II");
                         break;
               case '3': printf("III");
                         break;
               case '4': printf("IV");
                         break;
               case '5': printf("V");
                         break;
               case '6': printf("VI");
                         break;
               case '7': printf("VII");
                         break;
               case '8': printf("VIII");
                         break;
               case '9': printf("IX");
                         break;
        }
        
        system("pause");
    }

  2. #2

    Re: [C]conversione numeri arbai-romani

    Originariamente inviato da robyy94
    Ciao a tutti,

    Ho bisogno di creare un algoritmo che dato in input un numero arabo lo trasformi in romano.

    Ho già provedduto a farlo, ma una volta eseguito non mi da nnt come output ... potete aiutarmi a trovare l'errore?
    [/CODE]
    Se l'output non lo stampi a schermo non l'avrai mai

    Per farlo usa la funzione printf(pattern, par1, par2, ...)

    EDIT: scusa non avevo visto i printf.
    Si la funzione è quasi giusta,è solo che nei case non devi inserire 'numero' ma numero senza apici.
    lolide
    Java Programmer

    Informati

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Nn devi usare case 'cifra' ma solo case cifra: se il resto funge.
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    13
    Grazie mille dell'aiuto, il problema erano proprio gli apici del case!

    Posto il codice funzionante.. magari potrà tornare utile a qualcun'altro



    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
        int unita;
        int decine;
        int centinaia;
        int migliaia;
        int num;
    
        printf("Inserisci il numero che vuoi convertire:");
        scanf("%d", &num);
        
        migliaia=num/1000;
        centinaia=(num-(migliaia*1000))/100;
        decine=(num-(migliaia*1000)-(centinaia*100))/10;
        unita=(num-(migliaia*1000)-(centinaia*100)-(decine*10));
        
        switch(migliaia){
               
               case 1: printf("M");
                         break;
               case 2: printf("MM");
                         break;
               case 3: printf("MMM");
                         break;
               case 4: printf("MMMM");
                         break;
               case 5: printf("MMMMM");
                         break;
               case 6: printf("MMMMMM");
                         break;
               case 7: printf("MMMMMMM");
                         break;
               case 8: printf("MMMMMMMM");
                         break;
               case 9: printf("MMMMMMMMM");
                         break;
               
        }
        
        
        switch (centinaia) {
               case 1: printf("C");
                         break;
               case 2: printf("CC");
                         break;
               case 3: printf("CCC");
                         break;
               case 4: printf("CD");
                         break;
               case 5: printf("D");
                         break;
               case 6: printf("DC");
                         break;
               case 7: printf("DCC");
                         break;
               case 8: printf("DCCC");
                         break;
               case 9: printf("CM");
                         break;
        }
        
        
        switch (decine){
               case 1: printf("X");
                         break;
               case 2: printf("XX");
                         break;
               case 3: printf("XXX");
                         break;
               case 4: printf("XL");
                         break;
               case 5: printf("L");
                         break;
               case 6: printf("LX");
                         break;
               case 7: printf("LXX");
                         break;
               case 8: printf("LXXX");
                         break;
               case 9: printf("XC");
                         break;
        }
        
        
        switch (unita){
               case 1: printf("I");
                         break;
               case 2: printf("II");
                         break;
               case 3: printf("III");
                         break;
               case 4: printf("IV");
                         break;
               case 5: printf("V");
                         break;
               case 6: printf("VI");
                         break;
               case 7: printf("VII");
                         break;
               case 8: printf("VIII");
                         break;
               case 9: printf("IX");
                         break;
        }
        
        system("pause");
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.