【问题标题】:Roman Numeral to Integers罗马数字转整数
【发布时间】:2023-01-17 23:35:50
【问题描述】:

我需要帮助解决这个问题,我期待一个数字出来但得到这个错误 Line 65: Char 5: error: conflicting types for 'main' int main(int argc, char *argv[]) { ^ Line 47: Char 5: note: previous definition is here int main() ^ 1 error generated.

这是我的一些代码

class Solution {
public:
    int value(char r){
        if (r == 'I')
            return 1;
        if (r == 'V')
            return 5;
        if (r == 'X')
            return 10;
        if (r == 'L')
            return 50;
        if (r == 'C')
            return 100;
        if (r == 'D')
            return 500;
        if (r == 'M')
            return 1000;
 
        return -1;
    }
    int romanToInt(string& s) {
        int ret = 0;

        for (int i = 0; i < s.length(); i++) {
            int s1 = value(s[i]);

            if (i + 1 < s.length()) {
                int s2 = value(s[i + 1]);

                if (s1 >= s2) {
                    ret = ret + s1;
                }
                else {
                    ret = ret + s2 - s1;
                    i++;
                }
            }
            else {
                ret = ret + s1;
            }
        }
        return ret; 
    }

};

int main()
{
    Solution m;

    string str = "III";
    cout << "Integer form of Roman Numeral is " << m.romanToInt(str) << endl; 
    return 0;
}

我正在尝试使用一个指针数组,它逐个字母地读取行并识别函数 value() 中字母的值,我想我明白我的 main 需要不同的格式才能完成这项任务,但我我有点不知道该怎么做。

【问题讨论】:

  • 要开始,您至少应该知道您正在使用哪种编程语言!

标签: string pointers integer roman-numerals


【解决方案1】:

您可能已经定义了两次 int main。考虑到你在第 65 行有一个错误,而你的代码少于 60 行,我认为代码比这里复制的要多。

【讨论】:

    猜你喜欢
    • 2015-07-24
    • 2022-07-08
    • 2019-01-09
    • 2011-10-25
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    相关资源
    最近更新 更多