Quote Originariamente inviata da LeleFT Visualizza il messaggio
Senza entrare nel merito del tuo algoritmo che non è corretto per calcolare il numero arabo (se la "cifra" in posizione i+1 è minore della "cifra" in posizione i allora somma, altrimenti sottrai... quindi, se io scrivo "II" il valore convertito è 0 visto che sono uguali... il confronto sugli indici non capisco che senso abbia e, comunque, i non viene mai incrementato... e quando raggiungo la fine (cioè mai) controllo comunque la cifra successiva alla fine, che non esiste...), vediamo un po' quel che stai cercando di fare dentro quello switch:

numero_romano[j] è una locazione in memoria che contiene un carattere... come puoi pretendere (logicamente parlando) di assegnarci (memorizzarci dentro) un numero intero (1, 5, 10, 50, 100, 500, 1000)?


Ciao.
hai assolutamente ragione...direi allora di modificare il codice inserendo una nuova variabile ed inserirla nello switch

codice:
switch (cifra_romana) {        case 'I': cifra_romana=1;break;
        case 'V': cifra_romana=5;break;
        case 'X': cifra_romana=10;break;
        case 'L': cifra_romana=50;break;
        case 'C': cifra_romana=100;break;
        case 'D': cifra_romana=500;break;
        case 'M': cifra_romana=1000;break;
}
in questo modo.. che dici?
inoltre nell'algoritmo dovrei modificare il + col meno e dovrei risolvere il tutto, no?