C++ Programming Help Please! I have asked this same question many times on Chegg
ID: 3882689 • Letter: C
Question
C++ Programming Help Please! I have asked this same question many times on Chegg... never got a good answer
NOTE: READ ENTIRE PROGRAM DESCRIPTION CAREFULLY! Thank You!
Program Info: Write a program that accepts a year written as a four-digit Arabic (ordinary) numeral and outputs the year written in Roman numerals. Important Roman numerals are V for 5, X for 10, L for 50, C for 100, D for 500, and M for 1,000. Recall that some numbers are formed by using a kind of subtraction of one Roman “digit”; for example, IV is 4 produced as V minus I, XL is 40, CM is 900, and so on. A few sample years: MCM is 1900, MCML is 1950, MCMLX is 1960, MCMXL is 1940, MCMLXXXIX is 1989. Assume the year is between 1000 and 3000. Your program should include a loop that lets the user repeat this calculation until the user says she or he is done.
More Important Info/OUTPUT:
Enter an Arabic number: 2456
2456 is MMCDLVI in Roman numerals
Play again? Y
Enter an Arabic number: 1359
1359 is MCCCLIX in Roman numerals
Play again? N
Read the number as an integer: e.g. 9786
Use arithmetics to separate each digit into separate ints: (do you know what the modulus operator is? “%” No? look it up.)
USE THE MODULUS OPERATOR -> %
ones will be 6
tens will be 8
hundreds will be 7
thousands will be 9
***use FOUR SWITCH CASES to output the correct string for each digit:
cout<<”XX” in case of tens being 2
cout<<”XXX” in case of tens being 3
etc.
***As with all the projects in this chapter, wrap this whole thing in a “Play another game” loop to allow the user to play as many times as they like.
MAKE SURE TO USE FOUR SWITCH CASES FOR OUTPUT!!!
Please Note: Keep the program simple... use simple commands DO NOT use .append
^^^ READ PROGRAM DESCRIPTION CAREFULLY PLEASE ^^^
(I have asked this question several times on Chegg... and never got a proper answer.. please help me...)
Explanation / Answer
#include<iostream>
using namespace std;
int main()
{
int n;
char ch = ' ';
do{
cout << " Enter an Arabic number: ";
while(cin>>n)
{
int x,y,k,l;
l=(n/1000)*1000;
if(l==1000)
cout<<"M";
if(l==2000)
cout<<"MM";
if(l==3000)
cout<<"MMM";
if(l==4000)
cout<<"-IV";
if(l==5000)
cout<<"-V";
if(l==6000)
cout<<"-VI";
if(l==7000)
cout<<"-VII";
if(l==8000)
cout<<"-VIII";
if(l==9000)
cout<<"-IX";
if(l==10000)
cout<<"-X";
k=(n%1000);
k=(k/100)*100;
if (k == 100)
cout<<"C";
else if (k == 200)
cout<<"CC";
else if (k == 300)
cout<<"CCC";
else if (k == 400)
cout<<"CD";
else if (k ==500)
cout<<"D";
else if (k == 600)
cout<<"DC";
else if (k == 700)
cout<<"DCC";
else if (k ==800)
cout<<"DCCC";
else if (k == 900)
cout<<"CM";
k=n%1000;
l=k%100;
y=(l/10)*10;
if (y == 10)
cout<<"X";
else if (y == 20)
cout<<"XX";
else if (y == 30)
cout<<"XXX";
else if (y == 40)
cout<<"XL";
else if (y ==50)
cout<<"L";
else if (y == 60)
cout<<"LX";
else if (y == 70)
cout<<"LXX";
else if (y ==80)
cout<<"LXXX";
else if (y == 90)
cout<<"XC";
x=l%10;
if (x == 1)
cout<<"I";
else if (x == 2)
cout<<"II";
else if (x == 3)
cout<<"III";
else if (x == 4)
cout<<"IV";
else if (x ==5)
cout<<"V";
else if (x == 6)
cout<<"VI";
else if (x == 7)
cout<<"VII";
else if (x ==8)
cout<<"VIII";
else if (x == 9)
cout<<"IX";
cout<<" in Roman numerals";
cout<<endl;
cout <<" Play again?(Y/N): ";
cin >> ch;
ch = toupper(ch);
}
}while(ch=='Y');
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.