I have a problem here. How to make a loop to define that the input is roman number.... since my solution is incorrect... Help me... it's make me crazy.... :confused:
Code:#include <iostream> #include <string> using namespace std; int main() { int value = 0, number, jumlah; string roman; char romancheck[]="IiVvXxLlCcDdMm"; char nonroman[]="AaBbEeFfGgHhJjKkLlNnOoPpQqRrSsTtUuVvWwYy"; /* while((roman != "I") || (roman != "i")||(roman != "V") || (roman != "v")|| (roman != "X") || (roman != "x")||(roman != "L") || (roman != "l")|| (roman != "C") || (roman != "c")||(roman != "D") || (roman != "d")|| (roman != "M") || (roman != "m")) { cout << "Invalid input" << endl; break; } */ do { cout << "Enter a roman number: "; getline(cin, roman); if(roman != nonroman) { cout << "Invalid output" << endl; } if((roman == "IX") || (roman == "ix")) { value = 9; } else if((roman == "IIX") || (roman == "iix")) { value = 8; } else if((roman == "IV") || (roman == "iv")) { value = 4; } else if((roman == "IIV") || (roman == "iiv")) { value = 3; } else if((roman == "XL") || (roman == "xl")) { value = 40; } else { for (int i=0; i<=roman.length(); i++) { char kiraan = roman[i]; kiraan = toupper(kiraan); switch (kiraan) { case 'M' : value+= 1000; break; case 'D' : value+= 500; break; case 'C': value+= 100; break; case 'L' : value+= 50; break; case 'X' : value+= 10; break; case 'V' : value+= 5; break; case 'I' : value+= 1; break; } } } }while(roman == romancheck); cout << "Roman number " << roman << " in decimal form is " << value << endl; system ("pause"); return 0; }



LinkBack URL
About LinkBacks



