2012. 7. 13. 14:38

#include '<'stdio.h'>'

#include '<'stdlib.h'>'



void menu(char id[],int n) {

    printf("주민등록번호를 연속으로 입력하시오(ex)123456-1234567)) : ");

    for (int i=0; i
        scanf("%c",&id[i]);

        }

}



int check_id(char id[],int num[]) {

    int tmp=0,j=0,key_n=11; //key value

    static int cnt=0; //count

    for (int i=0; i<13 ; i++) {

        if (i!=6) {

            tmp = tmp + ((id[i]-48)*num[j]);

            j++;

            if (j==8) j=0; //num앞으로

            }

    }

    tmp = tmp % key_n;

    tmp = key_n - tmp;

    if (tmp==(id[i]-48)) {

        printf("정확한 주민등록 번호입니다.\n");

        cnt = 0 ; //초기화

    }

    else {

        printf("정확하지 않은 주민등록 번호입니다.\n");

        cnt++; //정확하지 않으면 증가

    }

    return cnt;

}



void check_failure(int cnt) {

    if (cnt == 3) {

        printf("연속으로 3번 틀렸습니다.프로그램을 다시 시작하시오\n");

        exit(1);

    }

}



int main() {

    char id[15]; //array jumin

    int num[8]={2,3,4,5,6,7,8,9}; //check number

    int cnt;

    while(1) {

        menu(id,sizeof(id)/sizeof(char));

        cnt = check_id(id,num);

        check_failure(cnt); //check failure

        }

    return 0;

}

Posted by 몰라욧