Konwersja z systemu rzymskiego na dziesiętny

0

Co jest nie tak z tym kodem? Potrzebuję pomocy w "przetłumaczeniu" błędów z kompilatora:

{prog.cpp: In function ‘int main()’:
prog.cpp:21:39: error: expected ‘,’ before ‘+’ token
         if (zmiana(tekst[i])<zmiana([i+1])) suma-=zmiana(tekst[i]);
                                       ^
prog.cpp:21:39: error: expected identifier before ‘+’ token
prog.cpp: In lambda function:
prog.cpp:21:42: error: expected ‘{’ before ‘)’ token
         if (zmiana(tekst[i])<zmiana([i+1])) suma-=zmiana(tekst[i]);
                                          ^
prog.cpp: In function ‘int main()’:
prog.cpp:21:42: error: cannot convert ‘main()::<lambda()>’ to ‘char’ for argument ‘1’ to ‘int zmiana(char)’}

a poniżej kod:

#include <iostream>
using namespace std;
 
int zmiana (char x)
{
    if (x=='I') return 1;
    if (x=='V') return 5;
    if (x=='X') return 10;
    if (x=='L') return 50;
    if (x=='C') return 100;
    if (x=='D') return 500;
    if (x=='M') return 1000;
}  
 
int main() {
    string tekst;
    int suma(0);
    cin>>tekst;
    for (int i=0; i<tekst.size(); i++)
    {
        if (zmiana(tekst[i])<zmiana([i+1])) suma-=zmiana(tekst[i]);
        else suma+=zmiana(tekst[i]);
    }
 
cout<<suma;
 
    return 0;
}
1
#include <string>
if (zmiana(tekst[i])<zmiana(tekst[i+1])) suma-=zmiana(tekst[i]);
0

Dziękuję, dziękuję, dziękuję! :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1