我的代码需要考虑到 2000 到 2100 年并将它们显示为罗马数字。
例如,2000:XXXIV.
我开始进行数字检查:
const int DIGIT_CHECK = 10
我相信它会分裂和一个或两个数字。
然后对于那些地方,我初始化了一个 unit_digit 并将其%赋给 DIGIT_CHECK
int unit_digit = n % DIGIT_CHECK;
我相信你必须对十分位、百分之一和千位做同样的事情:
int tenth_digit = n / DIGIT_CHECK;
int hundredth_place = n / 100;
int thousandth_digit = n / 1000;
然后我列出了数字一、四、五、九、十、五十、百、千的罗马数字字符串:
const string ONE = "I";
等等......
然后我启动了一个开关盒(正如我的教授所说)
switch (unit_digit)
,它以个位数“I,II,III,IV,V,VI,VII,VIII,IX 和 X”接受所有可能的罗马数字排列“:case 1: roman = ONE;
case 2: roman = ONE + ONE;
...
我在接近 2076 年时遇到第十位数字的问题。这并不是代码不起作用,只是当它接近 2076 时打印出来:
2075 --> CIX
2076 --> C
当 2076 应该是 CX 时。所以在十分之一位开关盒中缺少一些东西:
我已经运行了调试器并查看了论坛,所以如果我得不到任何帮助也没关系。只是想我会调整我的问题以更好地适应评论。对不起
如果您的代码不工作,或者您正在尝试修复错误/奇怪的情况,您需要指定您要更改的内容。否则,如果您想进行一般性审查,https://codereview.stackexchange.com/
更适合这个问题。