和整数转罗马数差不多注意判定条件即可,从右向左,如果它的下一位的值比它大的话证明是 IV IX这类特殊值 把加变成减
#include<stdio.h>
#include<string.h>
void main(){
int a[8]={1000,500,100,50,10,5,1};
char c[8]={‘M’,‘D’,‘C’,‘L’,‘X’,‘V’,‘I’};
int next=0;
int i=0;
int num=0;
char s[100];
scanf("%s",s);
for(i=0;i<strlen(s);i++){
int i1=0;
int i2=0;
while(s[i]!=c[i1])
i1++;
while(s[i+1]!=c[i2])
i2++;
if(a[i1]<a[i2])
num=num-a[i1];
else
num=num+a[i1];
}
printf("%d",num);
printf("\n");
}