-
JUNGOL...26일지 2020. 11. 30. 14:29
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)