罗马数字--简洁版

来源:互联网 发布:精益数据分析 微盘 编辑:程序博客网 时间:2024/04/29 11:50
/*【罗马数字】 */#include<stdio.h>#define MAX 100main(){    char symbol[]="IVXLCDM", roman[MAX];    int  data[MAX]={0};    int n,i,t, sum=0;    scanf("%d",&n);    while(n--)    {           sum=0; //千万不要忘了对多组数据,每一组工作完成都要清0         scanf("%s", roman);        //逐个查找roman[i]对应的数字,记录在data[i]中        for(i=0; roman[i]!='\0'; i++)             switch(roman[i])            {                case 'I':   data[i]=1;  break;                case 'V':   data[i]=5;  break;                case 'X':   data[i]=10;  break;                case 'L':   data[i]=50;  break;                case 'C':   data[i]=100;  break;                case 'D':   data[i]=500; break;                case 'M':   data[i]=1000;  break;            }        // i值正是一个罗马数字中字符的个数。         for(t=0; t<i-1; t++ )   //将每一位上对应的数字相加,注意判断正负         {               if(data[t]<data[t+1])                sum=sum-data[t];            else                sum=sum+data[t];        }        sum+=data[i-1];    //加上最后一个数         printf("%d\n", sum);    }    return 0;}
0 0
原创粉丝点击