#마방진
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 | #include<stdio.h> #include<string.h> void magicSquareTest(void); void setMagicSquare(int (*magic)[19]); void printArray19(int (*magic)[19]); int num; int magic[19][19]; int main() { magicSquareTest(); setMagicSquare(magic); printArray19(magic); system("pause"); return 0; } void magicSquareTest(void) { printf("inpur number : "); scanf("%d",&num); } void setMagicSquare(int (*magic)[19]) { int count=1,k; int i=0,j=num/2; for (k=0;k<num*num;k++) { if(count%num==0) magic[i++][j]=count; else magic[i--][j++]=count; if(i<0) i=num+i; if(j>num-1) j=num-j; count++; } } void printArray19(int (*magic)[19]) { int i,j; for (i=0;i<num;i++) { for (j=0;j<num;j++) printf("%5d",magic[i][j]); printf("\n"); } } | cs |
#주민등록번호
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | #include<stdio.h> #include<string.h> int leap_year(int year); int strtoNum(char* str); int formatErrorCheck(char* str); int dayofmonth[]={0,31,29,31,30,31,30,31,31,30,31,30,31}; int main() { char str[14]; char flag; while(1) { printf("\"_\"를 제외한 확인할 주민등록 번호 13자리를 입력하세요 : "); gets(str); fflush(stdin); if(!formatErrorCheck(str)) { printf("검증코드 오류인 주민등록 번호 입니다.\n"); printf("다시 입력하시겠습니까? (y/n) "); scanf("%c", &flag); fflush(stdin); if (flag == 'Y' || flag == 'y') continue; else break; } else { printf("올바른 주민등록 번호 입니다.\n"); printf("다시 입력하시겠습니까? (y/n) "); scanf("%c", &flag); fflush(stdin); if (flag == 'Y' || flag == 'y') continue; else break; } } system("pause"); return 0; } int strtoNum(char* str) { return atoi(str); } int leap_year(int year) { if(year >50) year =year + 1900; else year =year + 2000; if(year%4!=0) return 0; else if(year%100!=0) return 1; else if(year%400==0) return 1; else return 0; } int formatErrorCheck(char* str) { if(strlen(str) !=13) return 0; char month[10]={0}; strncpy(month,str+2,2); if(strtoNum(month)>12) return 0; char day[10]={0}; char year[10]={0}; strncpy(year,str,2); strncpy(day,str+4,2); if(leap_year(strtoNum(year))) { dayofmonth[2]=28; } if(strtoNum(day)>dayofmonth[strtoNum(month)]) return 0; int magic[12] = {2,3,4,5,6,7,8,9,2,3,4,5}; int i , sum=0; int carry; for(i=0;i<12;i++) { sum +=magic[i]*(str[i]-48); } carry = sum%11; if(((11-carry)%10) !=(str[12]-48)) return 0; else return 1; } | cs |
'C 언어' 카테고리의 다른 글
[C언어_Day9]파일 입출력 (0) | 2018.10.11 |
---|---|
[C언어_Day7]동적 할당 (0) | 2018.10.11 |
[C언어_Day6]함수 포인터 + Void 포인터 (0) | 2018.10.11 |
[C언어_Day5]명령 인수, 포인터 사용 (0) | 2018.10.11 |
[C언어_Day4]String 예제 (0) | 2018.10.11 |