두 글자로 된 한글을 입력받아서 

초중종성으로 분리한 다음에

구개음화가 일어나는지 판단하는 건데

어디가 잘못된건지 모르겠어..



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <locale.h>
#include <stdio.h>
#include <windows.h>
 
int main(void)
{
    setlocale(LC_ALL, "Korean");
 
    WORD f1, f2, m1, m2, l1, l2;
    WORD f, s;  // 첫 음절 f, 둘째 음절 s
 
    printf("구개음화 판독기 입니다\n두 음절의 단어를 입력해 주세요\n");
    printf("첫 음절\n");
 
    wscanf(L"%s"&f);
 
    printf("둘째 음절\n");
 
    wscanf(L"%s"&s);
 
    f = f - 0xAC00;
    s = s - 0xAC00;  // 초중종성 분해 시작
 
    f1 = f / (0x0015 * 0x001C);
    m1 = (f / 0x001C) % 0x0015;
    l1 = f % 0x001C;  
    f2 = s / (0x0015 * 0x001C);  
    m2 = (s / 0x001C) % 0x0015;   
    l2 = s % 0x001C;
 
    if (l1 == 0x3137&& f2 == 0x3147 && m2 == 0x3163)  // 구개음화 조건 판단
    {
        f1 = 0x3148;
        
        l1 = 0;
 
        printf("구개음화가 발생합니다\n");
        wprintf(L"%s%s%s%s\n    %s", f1, m1, f2, m2, l2);
 
    }
 
    else if (l1 == 0x314c && f2 == 0x3147 && m2 == 0x3163)
    {
        f1 = 0x314A;
 
        l1 = 0;
 
        printf("구개음화가 발생합니다\n");
        wprintf(L"%s%s%s%s\n    %s-", f1, m1, f2, m2, l2);
    }
 
 
    else
        printf("구개음화가 일어나지 않습니다");
    
 
    return 0;
}
cs