#24914: C我先把輸入的兩數差,用十進位輸出,但不知道哪裡有問題,加出來不對


harryaaron0601@gmail.com (陳冠仁)

學校 : 不指定學校
編號 : 148530
來源 : [1.200.51.235]
最後登入時間 :
2022-11-07 00:40:57
a013. 羅馬數字 -- NPSC 模擬試題 | From: [103.5.102.69] | 發表日期 : 2021-04-04 23:10

#include <stdio.h>

#include <string.h>

#include <math.h>

int main()

{

int a,b,i,total=0,tota=0;

char str1[20],str2[20],I,V,X,L,C,D,M;

scanf("%s%s",str1,str2);

 

a=strlen(str1);

b=strlen(str2);

for(i=0;i<a;i++){

    if( str1[i]==M)

    str1[i]=1000;

    if( str1[i]==D)

    str1[i]=500;

    if( str1[i]==C)

    str1[i]=100;

    if( str1[i]==L)

    str1[i]=50;

    if( str1[i]==X)

    str1[i]=10;

    if( str1[i]==V)

    str1[i]=5;

    if( str1[i]==I)

    str1[i]=1;

    }

for(i=0;i<b;i++){

    if( str2[i]==M)

    str2[i]=1000;

    if( str2[i]==D)

    str2[i]=500;

    if( str2[i]==C)

    str2[i]=100;

    if( str2[i]==L)

    str2[i]=50;

    if( str2[i]==X)

    str2[i]=10;

    if( str2[i]==V)

    str2[i]=5;

    if( str2[i]==I)

    str2[i]=1;

    }

 

for(i=a;i>0;i--)

    if( str1[i-1]<= str1[i-2])

        total=total+str1[i-1]+str1[i-2];

    if( str1[i-1]> str1[i-2])

        total=total-str1[i-2];

for(i=b;i>0;i--)

    if( str2[i-1]<= str2[i-2])

        tota=tota+str2[i-1]+str2[i-2];

    if( str2[i-1]> str2[i-2])

        tota=tota-str2[i-2];

 

 

printf("%d",abs(total-tota));

 

 

}

 

 
ZeroJudge Forum