JUNGOL...26
Language_Code/함수2/형성평가1
문제
정수 N을 입력받고 다시 N개의 정수를 입력받아 내림차순으로 정렬하여 출력하는 프로그램을 작성하시오.
(1 ≤ N ≤ 15, 입력과 출력, 정렬은 모두 함수를 이용할 것)
입력 예
5
12 35 1 48 9
출력 예
48 35 12 9 1
FormativeFunction201.h
#include <iostream>
class FormativeFunction201 : public Base
{
private:
int* Input(int& n);
void Sort(int n, int arr[]);
void Print(int n, int arr[]);
};
FormativeFunction201.cpp
void FormativeFunction201::Code()
{
int n;
int* arr = Input(n);
Sort(n, arr);
Print(n, arr);
delete[] arr;
}
int* FormativeFunction201::Input(int& n)
{
std::cin >> n;
int* arr = new int[n];
for (int i = 0; i < n; i++)
{
std::cin >> arr[i];
}
return arr;
}
void FormativeFunction201::Sort(int n, int arr[])
{
for (int i = 1; i < n; i++)
{
for (int j = 0; j < n - i; j++)
{
if (arr[j] < arr[j + 1])
{
int temp{ arr[j] };
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void FormativeFunction201::Print(int n, int arr[])
{
for (int i = 0; i < n; i++)
{
std::cout << arr[i] << ' ';
}
}
Language_Code/함수2/형성평가2
문제
두 개의 실수를 입력받아 각각의 제곱근을 구하고 두 제곱근 사이에 존재하는 정수의 개수를 출력하는 프로그램을 작성하시오.
단, 입력받는 두 실수는 양수이며 두 제곱근 사이라는 말은 두 제곱근을 포함한다.
입력 예
12.0 34.789
출력 예
2
Hint!
두 수의 제곱근을 구하여 정수로 형변환을 한 후 생각해보자.
두 수 사이의 수들은 모두 포함이 되면 작은 수의 경우 변환하기 전 원래의 제곱근과 같다면 개수에 포함을 시켜야 한다.
큰 수는 원래의 수보다 작거나 같으므로 무조건 포함이 된다.
FormativeFunction202.h
#include <iostream>
#include <cmath>
class FormativeFunction202 : public Base
{
private:
void Function(float var1, float var2);
};
FormativeFunction202.cpp
void FormativeFunction202::Code()
{
float var1, var2;
std::cin >> var1 >> var2;
Function(var1, var2);
}
void FormativeFunction202::Function(float var1, float var2)
{
int num1{ static_cast<int>(ceil(sqrt(var1 < var2 ? var1 : var2))) };
int num2{ static_cast<int>(floor(sqrt(var1 > var2 ? var1 : var2))) };
std::cout << num2 - num1 + 1;
}
Language_Code/함수2/형성평가3
문제
5개의 정수를 입력받아 각 정수의 절대값의 합을 출력하는 프로그램을 작성하시오.
입력 예
35 -20 10 0 55
출력 예
120
FormativeFunction203.h
#include <iostream>
#include <cmath>
class FormativeFunction203 : public Base
{
private:
void Function(int arr[]);
};
FormativeFunction203.cpp
void FormativeFunction203::Code()
{
int arr[5];
for (int i = 0; i < 5; i++)
{
std::cin >> arr[i];
}
Function(arr);
}
void FormativeFunction203::Function(int arr[])
{
int sum{ 0 };
for (int i = 0; i < 5; i++)
{
sum += abs(arr[i]);
}
std::cout << sum;
}
Language_Code/함수2/형성평가4
문제
정수 n을 입력받아 2n의 값을 출력하는 프로그램을 작성하시오. (1 ≤ n ≤ 20)
입력 예
10
출력 예
1024
FormativeFunction204.h
#include <iostream>
class FormativeFunction204 : public Base
{
private:
void Function(int n);
};
FormativeFunction204.cpp
void FormativeFunction204::Code()
{
int n;
std::cin >> n;
Function(n);
}
void FormativeFunction204::Function(int n)
{
int result{ 1 };
for (int i = 0; i < n; i++)
{
result *= 2;
}
std::cout << result;
}
Language_Code/함수2/형성평가5
문제
세 개의 실수를 입력받아 합계와 평균을 구하여 평균을 반올림한 정수를 출력하고, 다음은 입력받은 수를 각각 먼저 반올림한 후 합계와 평균을 구하여 평균을 반올림한 한 결과를 출력하는 프로그램을 작성하시오.
입력 예
153.74 34.59 109.5
출력 예
99
100
FormativeFunction205.h
#include <iostream>
#include <cmath>
class FormativeFunction205 : public Base
{
private:
void Function(float arr[]);
};
FormativeFunction205.cpp
void FormativeFunction205::Code()
{
float arr[3];
for (int i = 0; i < 3; i++)
{
std::cin >> arr[i];
}
Function(arr);
}
void FormativeFunction205::Function(float arr[])
{
std::cout << static_cast<int>(floor((arr[0] + arr[1] + arr[2]) / 3 + 0.5f)) << '\n';
for (int i = 0; i < 3; i++)
{
arr[i] = floor(arr[i] + 0.5f);
}
std::cout << static_cast<int>(floor((arr[0] + arr[1] + arr[2]) / 3 + 0.5f)) << '\n';
}
Language_Code/함수2/형성평가6
문제
자료의 개수 7을 매크로 상수로 정의하여 자료의 개수만큼 정수를 입력받아 입력받은 순서대로 앞에서부터 마지막까지 가면서 바로 뒤의 숫자와 비교하여 크면 교환한다. 이러한 작업을 세 번 반복한 후 그 결과를 하나의 행에 공백으로 구분하여 출력하는 프로그램을 작성하시오.
입력 예
15 20 41 8 26 33 19
출력 예
8 15 20 19 26 33 41
Hint!
버블정렬에서 i를 N-1부터 N-3까지 3번 실행하면 된다.
FormativeFunction206.h
#include <iostream>
#define N 7
class FormativeFunction206 : public Base
{
private:
void Function(int arr[]);
};
FormativeFunction206.cpp
void FormativeFunction206::Code()
{
int arr[N];
for (int i = 0; i < N; i++)
{
std::cin >> arr[i];
}
Function(arr);
}
void FormativeFunction206::Function(int arr[])
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < N - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp{ arr[j] };
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < N; i++)
{
std::cout << arr[i] << ' ';
}
}
Language_Code/함수2/형성평가7
문제
원주율을 3.141592로 매크로 상수로 정의하고 원의 넓이를 구하는 매크로 함수를 작성하여 반지름을 입력받아 원의 넓이를 출력하는 프로그램을 작성하시오. (소수 넷째자리에서 반올림)
입력 예
radius : 1.5
출력 예
area = 7.069
Hint!
원의 넓이 : 반지름 × 반지름 × 원주율(π)
FormativeFunction207.h
#include <iostream>
#define PI 3.141592
#define AREA(r) PI * r * r
FormativeFunction207.cpp
void FormativeFunction207::Code()
{
double radius;
std::cout << "radius : ";
std::cin >> radius;
std::cout.precision(3);
std::cout.setf(std::ios::fixed);
std::cout << "area = " << AREA(radius);
}
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)
NadanKim/CodingTest_JUNGOL
JUNGOL 코딩 테스트를 위한 저장소. Contribute to NadanKim/CodingTest_JUNGOL development by creating an account on GitHub.
github.com