就是我也描述不清楚,大lao们看一下图片

img


然后就是,我想把那个I V什么的自己定义出来,然后再把字符串单个输出出来,这个单个输出来的和我定义的是一个么,就是举个例子:II 是2么,然后我定义I是1,然后输出出来的I我就直接定义一个sum+=I,能输出来2么,谢谢大lao们

供参考:

#include <stdio.h>
#include <string.h>
int romanToInt(char * s)
{
    int i=0,j=0,a[16]={0},sum=0;  //整形数组a用于记录对应罗马数字的整数,
                                  //sum用于记录罗马数字代表的整数和
    for(i = 0;s[i] != '\0'; i++)
    {
        switch(s[i]){
              case 'I':{a[j++]=1;break;}
              case 'V':{a[j++]=5;break;}
              case 'X':{a[j++]=10;break;}
              case 'L':{a[j++]=50;break;}
              case 'C':{a[j++]=100;break;}
              case 'D':{a[j++]=500;break;}
              case 'M':{a[j++]=1000;break;}
              default:break;
        }
    }
    a[j]=0;
    for(i=0;i < j; i++)
        if(a[i] >= a[i+1])
           sum += a[i];
        else
           sum -= a[i];
    return sum;
}

int main()
{
    char s[15];
    int a=0;
    scanf("%s", s);
    a=romanToInt(s);
    printf("%d\n",a);
    return 0;
}