#include<iostream> #include<cstring> #include<string> #include<cstdio> using namespace std; void fun(char str1[]) { ? ? int sum,a; ? ? a = strlen(str1);//用a来表示输入字符串的长度。 ? ? for(int i=0;i<=a;i++) ? ? { ? ? ? ? ? ? if(str1[i]=='I')//罗马数字中只有'I','X','C'会参与减法运算 ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ?if(str1[i+1]=='V'||str1[i+1]=='X') ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? sum=sum-1; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? sum=sum+1; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ? ? if(str1[i]=='V') ? ? ? ? ? ? { ? ? ? ? ? ? ? ? sum=sum+5; ? ? ? ? ? ? } ? ? ? ? ? ? if(str1[i]=='X') ? ? ? ? ? ? { ? ? ? ? ? ? ? ? if(str1[i+1]=='L'||str1[i+1]=='C') ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? sum=sum-10; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? sum=sum+10; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ? ? if(str1[i]=='L') ? ? ? ? ? ? { ? ? ? ? ? ? ? ? sum=sum+50; ? ? ? ? ? ? } ? ? ? ? ? ? if(str1[i]=='C') ? ? ? ? ? ? { ? ? ? ? ? ? ? ? if(str1[i+1]=='D'||str1[i+1]=='M') ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? sum=sum-100; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? sum=sum+100; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ? ? if(str1[i]=='D') ? ? ? ? ? ? { ? ? ? ? ? ? ? ? sum=sum+500; ? ? ? ? ? ? } ? ? ? ? ? ? if(str1[i]=='M') ? ? ? ? ? ? { ? ? ? ? ? ? ? ? sum=sum+1000; ? ? ? ? ? ? } ?? ? ? } ? ? cout<<"更换后的数字为:"<<sum<<endl; } int main() { ? ? char str1[100]; ? ? cout<<"请输入需要转换的罗马数字:"; ? ? cin>>str1; ? ? fun(str1); }
|