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;
}