10095 - moocHW3b   

Description

延續第一題,但是要算出對應的數值,以便確認如果代入了對應數字之後,等式是否正確。譬如輸入是
EF+DE=GH
D 2
E 3
F 6
G 4
H 7
#
輸出應該是
36
23
47
Wrong
可以用提供的程式架構,也可以全部自己寫。使用提供的程式架構要自己寫出
void convert_all(void); 這個函數
程式架構如下:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char Num_Str1[10];
char Num_Str2[10];
char Num_Str3[10];
int Num1, Num2, Num3;
int Mapping[10];
 
void read_equation(void);
void read_mapping(void);
void convert_all(void);
void show(void);
 
int main(void)
{
    read_equation();
    read_mapping();
    convert_all();
    show();
 
    return 0;
}
 
void read_equation(void)
{
    char ch;
    int i1=0,i2=0,i3=0;
    while((ch=getchar())!='+'){
        Num_Str1[i1]=ch;
        i1++;
    }
    Num_Str1[i1]='\0';
    while((ch=getchar())!= '='){
        Num_Str2[i2]=ch;
        i2++;
    }
    Num_Str2[i2]='\0';
    while((ch=getchar())!= '\n'){
        Num_Str3[i3]=ch;
        i3++;
    }
    Num_Str3[i3]='\0';
}
 
void read_mapping(void)
{
    char inputc, ch, numc;
    int i;
    for(i=0;i<10; i++){Mapping[i]=-1;}
    while((inputc=getchar())!='#'){
        if(isupper(inputc)==1){ch=inputc;}
        if(isdigit(inputc)==1){numc=inputc;}
        Mapping[ch-65]=numc-48;
    }
}
 
void show(void)
{
    printf("%d\n", Num1);
    printf("%d\n", Num2);
    printf("%d\n", Num3);
    if (Num1+Num2 == Num3)
        printf("Right\n");
    else
        printf("Wrong\n");
}

 

Input

輸入格式和第一題完全相同。

Output

總共會有四行。前三行為讀進來的那三個經過編碼的字母所對應的數字,每個數字一行。最後一行輸出"Wrong"或"Right"表示等式是否正確

Sample Input  Download

Sample Output  Download

Tags




Discuss