반응형
인터넷에 나와있는 소스에서 좀 변경하여 만들어 봤습니다.
바이러스 체크됐으니 다운받아서 사용하셔도 문제없습니다.
일반적으로 사용하는 프로그램이 아니기때문에 보안프로그램에 제지당할 수 있습니다.
어떤 프로그램이든 의심스럽다면 다운받지 않는것을 권장합니다.
다운로드 후에 side-by-side 문구의 에러가 발생한다면 아래 링크를 확인하세요.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void show();
void index();
int runSimulator(int*);
void showResult(int*);
int main()
{
int val, count,i;
int Num[7];
srand((unsigned int)time(NULL));//시간에 따라 다른 기준으로 난수 발생
while(1){
index();
fflush(stdin); //버퍼 삭제
val=getch(); //화면에 출력되지 않게 하나의값 입력받음
switch(val){
case 49 : //'1'의 키값
printf("몇개의 번호를 원하시나요? ");
scanf_s("%d",&count); //이용자가 원하는 로또번호 수
for(i=0;i<count;i++){ //원하는 수만큼 반복
runSimulator(Num);
showResult(Num);
}
printf("\n다시하기를 원하시면 엔터를 눌러주세요.\n");
printf("다른 키를 입력하시면 종료됩니다.\n");
val=getch(); //문자 하나를 입력받음
if(val==13){ //엔터값인 13을 입력받으면 화면 클리어
system("cls");
}else{
printf("\n");
exit(0);
}
break;
case 50 : //'2'의 키값
exit(0); //프로그램 종료
default :
system("cls");
printf(" ★다시 입력해주세요★\n");
}
}
}
void index()
{
printf("=================================\n");
printf("= 나눔 Lotto =\n");
printf("= =\n");
printf("= 1.시작하기 =\n");
printf("= 2.종료하기 =\n");
printf("=================================\n");
}
int runSimulator(int* A){
int i,j;
for(i=0;i<7;i++){ // 숫자 7개를 받음
A[i]=rand()%45+1; //난수 발생 범위 1~45
for(j=0;j<i;j++){ //중복체크를 위한 반복문
if(A[i]==A[j]){ //i값을 줄여줌으로 해서 중복 제거
i--;
}
}
}
return 0;
}
void showResult(int* A){
int i,j,temp; //숫자가 순서대로 출력되도록 출력하기 전에 정렬
for(i=0;i<7;i++){
for(j=0;j<i;j++){
if(A[i]<A[j]){
temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
}
for(i=0;i<6;i++){ //로또번호 순서대로 출력
if(A[i]<A[i+1]){
printf("[%d]",A[i]);
}else if(A[i]>A[i+1]){
printf("[%d]",A[i+1]);
A[i+1]=A[i];
}
}
printf("+[%d]\n",A[6]);
}
반응형
'C & C++ > C언어' 카테고리의 다른 글
[C] 슬롯머신 게임 (0) | 2019.11.04 |
---|---|
[C] 체지방 측정 프로그램 (0) | 2019.11.04 |
[C] 구구단 프로그램 (0) | 2019.11.04 |
[C] Hello world - Visual Studio 기본프로그램 만들기 (0) | 2019.11.04 |
[C] rand()함수/ srand()함수 (0) | 2019.11.01 |