即时阅读问题的C++解决和不明白以下几点:字符串附加罗马数字
在27行似乎大于和小于标志是倒退,但是当我改变他们什么,我想他们应该是程序确实运行。请你能让我知道他们为什么是这样吗?
从第47行开始的字符串函数中,它如何知道要选择哪个字符串?考虑我是否输入了1930年,对于900这个程序知道什么时候知道要超过9个逗号来选择'CM'的下一个字符串,并且同样对于30它知道它需要超过3个逗号并选择'XXX'。 ..但我不确定?能不能请您让我知道它是如何知道使用一年1930
#include <iostream>
#include <string>
using namespace std;
//function prototype
string toRomanLiterals(int);
int main()
//program displays Arabic Years as Roman Years
{
//declare integer as number
int integernumber;
//declare a character
char choice;
//do while loop to continue by y or no
do
{
//do while loop to read integer from user
//read integer number between 1 and 3000 only
do
{
cout << "Enter a number between 1000 and 3000: ";
cin >> integernumber;
}
while (integernumber < 1000 || integernumber > 3000);
if (integernumber > 1000 || integernumber < 3000)
{
//calling toRomanLiterals function
string output= toRomanLiterals(integernumber);
cout << output<<endl;
}
//continue to ask until user wishes to stop
cout << "Would you like to continue? [y/n]" << endl;
cin >> choice;
}
while (choice != 'n');
return 0;
}
//string toRomanLitrals takes the integer number and converts to a given
//number to a Roman number if it is between 1000 and 3000
string toRomanLiterals(int number)
{
string roman;
int th,h,t,o;
//string array for numbers 1 to 9
string ones[] =
{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
//string array for numbers 10 to 90
string tens[] =
{"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
//string array for numbers 100 to 900
string hundreds[] =
{"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
//string array for numbers 1000 to 3000
string thousands[] = {"", "M", "MM", "MMM"};
if (number <= 3000)
{
//get number of thousands
th = number/1000;
number = number % 1000;
//get number of hundreds
h = number/100;
number = number % 100;
//get number of tens
t = number/10;
o = number % 10;
//concatenate all string values of thousands, hundreds, tens, zeros
//concatenate all symbols
roman += thousands[th].append(hundreds[h])
.append(tens[t]).append(ones[o]);
}
return roman;
}
“backwards”是什么意思?你能正确使用每句话的第一个字母吗?撇号在哪里? –