1. 서로 교환하는 함수 만들기
참조 방식을 이용하여 만들면
void Swap(int& a, int& b)
{
int c = a;
a = b;
b = c;
}
int main()
{
int a = 1;
int b = 2;
Swap(a, b);
cout << a << " " << b << endl;
return 0;
}
포인터 방식을 이용하여 만들면
void Swap(int* a, int* b)
{
int* c = a;
a = b;
b = c;
}
int main()
{
int* a;
int* b;
*a = 1;
*b = 2;
Swap(a, b);
cout << a << " " << b << endl;
return 0;
}
2. 정렬 함수 만들기
void Sort(int numbers[], int count)
{
for (int i = 0; i < count; i++)
{
for (int j = i + 1; j < count; j++)
{
if (numbers[i] > numbers[j])
{
Swap(numbers[i], numbers[j]);
}
}
}
}
i번째 수와 j번째 수를 비교해서 스왑함수를 적용시켜준다.
3. 로또 번호 생성
void ChooseLotto(int numbers[])
{
// 중복 없이 랜덤으로 1~45 사이의 숫자 6개를 선택
srand((unsigned) time(0));
int count = 0;
while (count != 6)
{
int randNumber = rand() % 45 + 1;
bool found = false; // 중복 방지
for (int i = 0; i < count; i++)
{
if (numbers[i] == randNumber)
{
found = true;
break;
}
}
if (found == false)
{
numbers[count] = randNumber;
count++;
}
}
Sort(numbers, 6);
}
중복된 수를 넣지 않기 위해서 while문을 먼저 이용한다. 이후 중복 여부를 판단하기 위해 found 불리언을 사용한다.
found 불리언이 false(중복되지 않음)이면 랜덤 값을 해당 배열의 요소에 넣고 count를 1 증가시킨다.
이후 count가 6이 되면 while 문이 끝나게 된다.
최종적으로 획득한 배열을 정렬해준다.
'기초 C++ 스터디 > 예제' 카테고리의 다른 글
4-13. 문자열 수정하기 (0) | 2023.05.23 |
---|---|
4-12. Text RPG 만들기(2) (0) | 2023.05.23 |
4-3. 포인터 실습 (0) | 2023.05.11 |
3-6. Text RPG 만들기 (0) | 2023.05.10 |
2-3. 예제(별 찍기, 구구단) (0) | 2023.05.04 |