#include <iostream>
using namespace std;
int zmiana (char x)
{
if (char==I) return 1;
if (char==V) return 5;
if (char==X) return 10;
if (char==L) return 50;
if (char==C) return 100;
if (char==D) return 500;
if (char==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(tab[i+1])) suma-=zmiana(tekst[i]);
else suma+=1;
}
cout<<suma;
return 0;
}
napisałam kod, który w założeniu ma zmieniać liczby z systemu rzymskiego na dziesiętny. Co musiałabym w nim zmienić żeby działał dobrze?
poprawiłam tak:
#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(zmiana[i+1])) suma-=zmiana(tekst[i]);
else suma+=zmiana(tekst[i]);
}
cout<<suma;
return 0;
}
ale jeszcze coś jest nie tak. Czy można w ogóle zrobić tak jak ja postawiłam warunek w ifie?