#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;
}
'Language > C & C Plus' 카테고리의 다른 글
[C] 로또 자동 생성 프로그램 (0) | 2012.07.13 |
---|---|
[C] 약간 조작한 2진수 8진수 16진수 출력 (0) | 2012.07.13 |
[C] Stack 을 이용한 2진수 8진수 16진수 출력 (0) | 2012.07.13 |
[C] Postfix --> Infix (0) | 2012.07.13 |
[C] 배열을 넘겨서 크기를 계산해 줄때 주의할 사항(블로그 캡쳐) (0) | 2012.07.13 |