본문 바로가기

C & C++/C언어

[C] 로또(Lotto) 번호생성 프로그램

반응형

 

인터넷에 나와있는 소스에서 좀 변경하여 만들어 봤습니다.

바이러스 체크됐으니 다운받아서 사용하셔도 문제없습니다.

일반적으로 사용하는 프로그램이 아니기때문에 보안프로그램에 제지당할 수 있습니다.

어떤 프로그램이든 의심스럽다면 다운받지 않는것을 권장합니다.

 

다운로드 후에 side-by-side 문구의 에러가 발생한다면 아래 링크를 확인하세요.

https://knowledge.autodesk.com/ko/support/arnold/troubleshooting/caas/sfdcarticles/sfdcarticles/KOR/How-to-reinstall-Microsoft-Visual-C-Runtime-Libraries-from-Autodesk-software-installation-package.html

 

Autodesk 소프트웨어 설치 패키지에서 Microsoft Visual C++ 런타임 라이브러리를 다시 설치하는 방법 | Arnold | Autodesk Knowledge Network

To translate this article, select a language. Bahasa Indonesia (Indonesian) Bahasa Melayu (Malay) Català (Catalan) Čeština (Czech) Dansk (Danish) Deutsch (German) English Español (Spanish) Français (French) Italiano (Italian) Latviešu valoda (Latvian) Liet

knowledge.autodesk.com


 

#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]);
}

 

Lotto.exe
0.03MB

반응형

'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