개발개발/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