1. goto 사용
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
//로또 중복 체크 : 1 ~ 45 중 에서 6개 숫자 랜덤 생성
int main(void)
{
int lotto[6] = { 0, };
srand((unsigned int)time(NULL));
for (int i = 0; i < 6; i++)
{
AGAIN:
int n = rand() % 45 + 1; // 1 ~ 45
//cout << n << ' ';
if (i == 0) {
lotto[i] = n;
}
else {
for (int j = 0; j < i; j++) {
if (n == lotto[j]) {
i--;
goto AGAIN;
}
}
lotto[i] = n;
}
}
for (int i : lotto) {
cout << i << endl;
}
return 0;
}
2.
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
//로또 중복 체크 : 1 ~ 45 중 에서 6개 숫자 랜덤 생성
int main(void) {
int lotto[6] = { 0, };
srand((unsigned int)time(NULL));
for (int i = 0; i < 6; i++) {
int n = (rand() % 6) + 1; // 1 ~ 45 //6으로 하면 중복 확인이 편하다
//cout << n << ' ';
lotto[i] = n;
for (int j = 0; j < i; j++) {
if (lotto[i] == lotto[j]) {
i--;
break;
//cout << "if 들어옴" << endl;
}
}
}
for (int i : lotto) cout << i << endl;
return 0;
}
중복제거 - 정렬 알고리즘으로 푸는중 ... 안됨 .........
#include <iostream>
#include <cstdio>
#include <string>
#include <ctime>
using namespace std;
int main() {
srand((unsigned int)time(NULL));
int arr[7] = { 0 };
int num = 0;
int i = 0;
//int j = i - 1;
int a = 0;
int k = 0;
arr[0] = 0; // 로또값은 0이 나올 수 없음. 따라서 첫 비교는 무조건 같지 않음 else 로 감
for (int i = 1; i < 7; i++)
{
int num = rand() % 7 +1;
arr[i] = num;
cout << i<<"번째for에서" <<i<<"번지의 값"<<arr[i] << endl;
int a = i - 1;
cout << i << "번째a값=" << a << endl;
for (int j=a; j >= 0; j--)
{
cout << j << "번째j값=" << a << endl;
if (arr[i] = arr[j])
{
cout << "중복되어 다시 뽑음" << endl;
while (1)
{
int num = rand() % 7+1;
arr[i] = num;
if (arr[i] != arr[j]) {
break;
}
}
}
else
{
//int num = rand() % 6+1;
arr[i] = num;
cout << "엘스" << endl;
}
}
}
//cout << arr<< endl;
for (int k = 1; k < 7; k++) {
cout << arr[k] << endl;
}
}
rand () %45 +1 // 1~45
int main() {
int arr[6];
int num = 0;
int i = 0;
int k = 0;
for (int i = 0; i < 6; i++) {
int num = rand() % (46);
arr[i] = num;
cout << arr[i] << endl;
}
}
6. 간단한 로또 프로그램.
조건1) 배열을 사용하여 동일한 숫자가 발생하지 않도록 처리. (중복체크 가능하면 중복체크 하고 안되면 안해도 됨)
조건2) 로또 번호를 만들고 배열에 6개의 번호를 생성하여 출력하는 lotto() 함수 작성.
[출처] C언어 함수 (Function) 기본 알고리즘 7번째|작성자 박x신
'C++ > c++수업' 카테고리의 다른 글
cpp class 원넓이, 사각형면적 (0) | 2020.10.14 |
---|---|
입력받는수의 합을 구하는 프로그램 (0) | 2020.10.13 |
음료수 자동판매기 프로그램 (0) | 2020.10.13 |
for (auto n : aList) (0) | 2020.10.13 |
배열형태로 동적생성, 삭제 (0) | 2020.10.13 |