10094 - moocHW3a   

Description

輸入分為兩部分。第一部分是一個經過了編碼後的加法數學等式,其中涉及的每個數字位數絕不會超過三位數,例如 ABC+CB=BDJ,表示是某個三位數 ABC加上某個二位數 CB 等於某個三位數 BDJ。編碼都是英文大寫字母,而且只會是 A, B, C, D, E, F, G, H, I, J 其中一部分。

接下來第二部分是編碼的對應數值,格式都會是一個英文大寫字母,搭配一個數字,最後是 # 結尾,例如 A 5 B 6 C 7 D 4 J 3 #,表示字母 A 對應到數值 5,字母 B 對應到數值 6,字母 C 對應到數值 7,字母 D 對應到數值 4,字母 J 對應到數值 3。其餘沒有對應的字母,預設值是 -1。

這個題目的任務很簡單,只要將輸入的資料讀進來並稍做處理,然後把他們顯示出來就行了。

可以使用我們提供的程式架構,也可以全部自己寫。如果要用我們提供的架構,要自己寫的部分只有兩個函數,

void read_equation(void);

void read_mapping(void);

在函數中直接修改下列全域陣列

char Num_Str1[10];

char Num_Str2[10];

char Num_Str3[10];

int Mapping[10];

以下為程式架構:

#include <stdio.h>
void read_equation(void);
void read_mapping(void);
char Num_Str1[10];
char Num_Str2[10];
char Num_Str3[10];
int Mapping[10];
int main()
{
    int i;
    for(i=0;i<10;i++){
        Mapping[i]=-1;
    }
    
    read_equation();
    read_mapping();
    
    
    
    for(i=0;i<4;i++){
        if(Num_Str1[i]=='\0'){
            printf(" ");
            break;}
        else printf("%c",Num_Str1[i]);
    }
    for(i=0;i<4;i++){
        if(Num_Str2[i]=='\0'){
            printf(" ");
            break;}
        else printf("%c",Num_Str2[i]);
    }
    for(i=0;i<4;i++){
      if(Num_Str3[i]=='\0'){
          printf("\n");
          break;}
        else printf("%c",Num_Str3[i]);
    }
    
    
    
    
    for(i=0;i<10;i++){
        printf("%3d",Mapping[i]);
    }
    printf("\n");
    
    
    


    return 0;
}
}

 

Input

如題目所描述,最後會以 '#' 結尾。

Output

總共要輸出兩行,注意兩行的結尾都要換行 (都要加 )。
第一行要顯示的東西,是讀進來的那三個經過編碼的數字,用空格分開。
第二行顯示的則是 A 到 J 對應的數值,如果沒有指定對應數值則預設值是 -1。注意,第二行的格式是 %3d,也就是說,如果是 0 到 9 的數字,前面會空兩個空格,如果是 -1 則前面只有一個空格。
 

Sample Input  Download

Sample Output  Download

Tags




Discuss