# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <time.h>
# define _SIZE_ 45
# define _CHOICE_ 3
typedef struct _Lotto {
int lotto[_SIZE_]; // [1, 45]
int TodayLotto [_CHOICE_]; // 3
int MeLotto [_CHOICE_]; // 3
}Lotto, *ptrLotto;
// function prototype ++++++++++++++++++++++++++++++++++
void Err_Function(char*); // ---------------------> [0]
void Sett_Function(Lotto**); // ------------------> [1]
void Ball_Function(Lotto**); // ------------------> [2]
void RndChoice_Function(Lotto**); // -------------> [3]
void Ctl_Function(Lotto**, int, int); // ---------> [4]
void BubbleSort_Function(Lotto**); // ------------> [5]
void Menu(); // ----------------------------------> [6]
void TodayLotto_Function(Lotto**); // ------------> [7]
void Win_Function(Lotto**); // -------------------> [8]
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
int main (void) {
srand((unsigned)time(NULL));
system("cls");
ptrLotto Lotto = NULL;
Sett_Function(&Lotto);
Ball_Function(&Lotto);
RndChoice_Function(&Lotto);
BubbleSort_Function(&Lotto);
TodayLotto_Function(&Lotto);
Win_Function(&Lotto);
return 0;
} // end of main function
//++++++++++++++++++++++++++++++++++++++++++++++++
void Err_Function (char* errMessage) {
fprintf(stderr, "%s", errMessage);
exit(0);
} // end of Err_Function
void Sett_Function(Lotto** stu) {
(*stu) = (ptrLotto)malloc(sizeof(Lotto));
if ( (*stu) == NULL) {
Err_Function("memory allocation error");
} else { // (*stu) != NULL
memset( (*stu), 0, sizeof(Lotto));
}
} // end of Sett_Function
void Ball_Function(Lotto** stu) {
int i; // index
for (i = 0; i <_SIZE_; i++) { // 1,2,3,4, ..., 45
(** stu).lotto[i] = (i+1);
}// end of for
// comment
for (i = 0; i <_SIZE_; i++) { // 1,2,3,4, ..., 45
printf("%d ", (** stu).lotto[i]);
} printf("\n");
// end of for
} // end of Ball_Function
void Ctl_Function(Lotto** stu, int index, int size) {
int i; // index
for (i= index; i< size-1; i++) {
(** stu).lotto[i] = (** stu).lotto[i+1];
}
} // end of Ctl_Function
void RndChoice_Function(Lotto** stu) {
int i, j; // index
int tmpSize = _SIZE_;
int chNumber = 0;
int index = 0;
for(i = 1; i<=3; i++) {
chNumber = rand()%tmpSize; // 0, 1, 2, 3, 4, ..., 44
Ctl_Function(stu, chNumber, tmpSize);
tmpSize -=1;
(** stu).MeLotto[index++] = (** stu).lotto[chNumber];
} // end of for
printf("Before> ");
for(i = 0; i<3; i++) {
printf("%d ", (** stu).MeLotto[i]);
} printf("\n");
// end of for
} // end of RndChoice_Function
void BubbleSort_Function(Lotto** stu) {
int i, j; // index
int tmp = 0;
int result;
for (i = 0; i<2; i++) {
result = 0;
for (j = 0; j<2; j++) {
if ( (** stu).MeLotto[j] > (** stu).MeLotto[j+1] ) {
tmp = (** stu).MeLotto[j];
(** stu).MeLotto[j] = (** stu).MeLotto[j+1];
(** stu).MeLotto[j+1] = tmp;
result = 1;
}
}
if (result == 0) {
break;
}
}
printf("after> ");
for(i = 0; i<3; i++) {
printf("%d ", (** stu).MeLotto[i]);
} printf("\n");
// end of for
} // end of BubbleSort_Function
void Menu() {
printf(" Range : 1 ~ 45 \n");
} // end of Menu Function
void TodayLotto_Function(Lotto** stu) {
int number = 0;
int count = 0;
int i;// index
Menu();
while(1) {
fprintf(stdout, "%s", "Plz number(integer) input: ");
scanf("%d", &number);
fflush(stdin);
if ( (number>=1) && (number<=45) ) {
(**stu).TodayLotto[count] = number; // 0, 1
count += 1;
printf("insert success!!! \n");
} else {
printf("wrong!!! \n");
}
if (count == 3) {// 1
break;
}
}
for(i = 0; i<3; i++) {
printf("%d ", (** stu).TodayLotto[i]);
} printf("\n");
} // end of TodayLotto Function
void Win_Function(Lotto** stu) {
int count = 0; // 맞는것에 갯수를 카운팅 할 것이다.
int i, j; // index
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
if ( (** stu).TodayLotto[i] == (** stu).MeLotto[j] ) {
count ++;
}
}
}
if (count == 3) {
printf("win !!! \n");
} else { // count != 3
printf("not win !!! \n");
}
} // end of Win_Function
'언어 > c언어' 카테고리의 다른 글
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=261614460 (1번문제) (0) | 2016.10.01 |
---|---|
숫자 3으로 나누어서 짝수 인지 홀수 인지 확인하는 코드 (0) | 2016.09.10 |
affine (85% 완성본) (100%완성본은 올리지 않겠다.) (0) | 2016.08.28 |
네이버 답변준것 소수 출력 (0) | 2016.07.31 |
네트워크에 쓸 코드 (0) | 2016.07.29 |