개발개발/c++ 예제

반복문, 난수, 입력(cin)을 사용하는 예제

유잉유잉유잉 2024. 12. 6. 16:18
728x90

조건 1.

반복문을 이용하여 20개짜리 배열에

1을 2개, 2를 2개 , 3을 2개 ... 10을 2개씩 입력하여


1~10까지 값을 2개씩 넣어줄 수 있는 반복문을 작성하여 출력해봅시다.

 

그 후, 아래와 같이 

1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

이렇게 출력해봅시다.

 

const int size = 20;
int nums[size] = {};

// 입력
for( int i = 0 ; i < size/2 ; i++ )
{
	nums[i]		= i + 1;
	nums[i + 10]	= i + 1;
}

// 다른 방법의 입력
for( int i = 0 ; i < size/2 ; i++ )
{
	nums[i * 2]	= i + 1;
	nums[i * 2 + 1]	= i + 1;
}

// 출력 - 나
for (int i = 0 ; i < 2 ; ++i)
{
	for (int j = 0 ; j < 10 ; ++j)
		printf ( "%d ", num[j + i*10]);
	
	printf ("\n");
}

// 출력 - 강사님 
// 세로줄번호 * 가로 개수 + 가로번호
for (int i = 0 ; i < 2 ; i++)
{
	for (int j = 0 ; j < 10 ; j++)
	{
		// \t 탭키를 눌러준 효과 
		std::cout << num[i * 10 + j] << "\t";
	}

	std::cout << std::endl;
}

 

 

 

조건 2

1. 숫자를 2개 입력 받습니다. 입력받는 숫자는 0 ~ 19사이여야한다.
2. 2개의 숫자를 입력받은 후에 입력 받은 숫자를 인덱스로 사용하여
배열에 들어가있는 값이 서로 같은지 비교하는 코드를 작성해 봅시다.

// 1. 배열에 들어가있는 값을 골고루 섞어주기
srand ( time ( 0 ) );
rand ();
int tmp = 0;
int arrLength = 20;

for (int i = 0 ; i < arrLength ; ++i)
{
	int randomIdx = rand () % arrLength ;
	tmp = num[i];
	num[i] = num[randomIdx];
	num[randomIdx] = tmp;
}

// 출력
for (int i = 0 ; i < 2 ; i++)
{
	for (int j = 0 ; j < 10 ; j++)
	{
		// \t 탭키를 눌러준 효과 
		std::cout << num[i * 10 + j] << "\t";
	}

	std::cout << std::endl;
}

// 2. 모든 값이 100이 되면 종료 
bool isContinue = true;

while (isContinue)
{
	int num1 = 0;
	std::cout << "\ninput idx :";
	std::cin >> num1;

	int num2 = 0;
	std::cout << "\ninput idx2 :";
	std::cin >> num2;

	if (num[num1] == num[num2])
	{
		std::cout << "\n same !\n" ;
		num[num1] = 100;
		num[num2] = 100;
	}
	else
		std::cout << "\n NOT same, num[] = " << num[num1] <<std::endl;

	// 출력
	for (int i = 0 ; i < 2 ; i++)
	{
		for (int j = 0 ; j < 10 ; j++)
		{
			// \t 탭키를 눌러준 효과
			std::cout << num[i * 10 + j] << "\t";
		}

		std::cout << std::endl;
	}

	// 끝났는지 체크
	bool isEnd = true;
	for (int i = 0 ; i < arrLength ; ++i)
	{
		if (num[i] != 100)
		{
			isEnd = false;
			break;
		}
	}

	if (isEnd)
	{
		std::cout << "\n ***** [ Game Finish!! ] ***** !\n" ;
		isContinue = false;
	}
}

 

728x90