-
JUNGOL...25일지 2020. 11. 25. 08:14
Language_Code/함수2/자가진단1
문제
10 이하의 자연수 n을 입력받고 n개의 정수를 입력받아 내림차순으로 정렬하여 출력하는 프로그램을 작성하시오. (배열을 전달하는 함수를 이용한다.)
입력 예
4
10 9 2 15
출력 예
15 10 9 2
BasicFunction201.h
#include <iostream> class BasicFunction201 : public Base { private: void Function(int n, int arr[]); };
BasicFunction201.cpp
void BasicFunction201::Code() { int n; int arr[10]{}; std::cin >> n; for (int i = 0; i < n; i++) { std::cin >> arr[i]; } Function(n, arr); } void BasicFunction201::Function(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; } } } for (int i = 0; i < n; i++) { std::cout << arr[i] << ' '; } }
Language_Code/함수2/자가진단2
문제
2016년의 날짜를 두 개의 정수 월 일로 입력받아서 입력된 날짜가 존재하면 "OK!" 그렇지 않으면 "BAD!"라고 출력하는 프로그램을 작성하시오.
입력 예
2 30
출력 예
BAD!
BasicFunction202.h
#include <iostream> class BasicFunction202 : public Base { private: void Function(int month, int day); };
BasicFunction202.cpp
void BasicFunction202::Code() { int month, day; std::cin >> month >> day; Function(month, day); } void BasicFunction202::Function(int month, int day) { const int MonthDay[]{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (day > 0 && MonthDay[month - 1] >= day) { std::cout << "OK!"; } else { std::cout << "BAD!"; } }
Language_Code/함수2/자가진단3
문제
두 개의 정수를 입력받아 절대값이 더 큰 수를 출력하고 두 개의 실수를 입력받아 절대값이 작은 수를 출력하는 프로그램을 작성하시오. 실수는 소수점 이하 2자리까지 출력한다.
입력 예
-50 40
-12.34 5.67
출력 예
-50
5.67
BasicFunction203.h
#include <iostream> class BasicFunction203 : public Base { private: template <typename T> T Function(T var); };
BasicFunction203.cpp
void BasicFunction203::Code() { int a, b; std::cin >> a >> b; int big{ Function<int>(a) > Function<int>(b) ? a : b }; std::cout << big << '\n'; float c, d; std::cin >> c >> d; float small{ Function<float>(c) < Function<float>(d) ? c : d }; std::cout.precision(2); std::cout.setf(std::ios::fixed); std::cout << small; } template <typename T> T BasicFunction203::Function(T var) { var = (var < 0 ? -var : var); return var; }
Language_Code/함수2/자가진단4
문제
원의 넓이를 입력받아 반지름의 길이를 소수 둘째자리까지 출력하는 프로그램을 작성하시오.
원의 넓이 = 반지름 * 반지름 * 3.14 식을 이용하시오.입력 예
314
출력 예
10.00
Hint!
원의 넓이 / 3.14 의 제곱근을 구하면 된다.
BasicFunction204.h
#include <iostream> #include <cmath> class BasicFunction204 : public Base { private: void Function(int var); };
BasicFunction204.cpp
void BasicFunction204::Code() { int var; std::cin >> var; Function(var); } void BasicFunction204::Function(int var) { const float PI{ 3.14f }; float radius{ sqrt(var / PI) }; std::cout.precision(2); std::cout.setf(std::ios::fixed); std::cout << radius; }
Language_Code/함수2/자가진단5
문제
세 개의 실수를 입력받아
가장 큰 수를 올림한 정수를 출력하고
가장 작은 수를 내림한 정수를 출력한 후
남은 수를 반올림한 정수를 출력하는 프로그램을 작성하시오.
입력되는 실수는 -1000이상 1000이하이다.
입력 예
3.45 51.48 -100.1
출력 예
52 -101 3
BasicFunction205.h
#include <iostream> #include <cmath> class BasicFunction205 : public Base { private: void Function(float var1, float var2, float var3); };
BasicFunction205.cpp
void BasicFunction205::Code() { float var1, var2, var3; std::cin >> var1 >> var2 >> var3; Function(var1, var2, var3); } void BasicFunction205::Function(float var1, float var2, float var3) { float big{ (var1 > var2 ? (var1 > var3 ? var1 : var3) : (var2 > var3 ? var2 : var3)) }; float small{ (var1 < var2 ? (var1 < var3 ? var1 : var3) : (var2 < var3 ? var2 : var3)) }; float mid{ (var1 != big && var1 != small ? var1 : (var2 != big && var2 != small ? var2 : var3)) }; std::cout << static_cast<int>(ceilf(big)) << ' '; std::cout << static_cast<int>(floorf(small)) << ' '; std::cout << static_cast<int>(floorf(mid + 0.5f)); }
Language_Code/함수2/자가진단6
문제
main() 함수 내에는 숫자를 사용하지 말고 즉, #define 을 이용하여 1, 2, 3 세 개의 숫자를 조합하여 가능한 한 모든 합을 출력하는 프로그램을 작성하시오. 출력예와 같이 출력하시오.
출력 예
1 + 1 = 2
1 + 2 = 3
1 + 3 = 4
2 + 1 = 3
2 + 2 = 4
2 + 3 = 5
3 + 1 = 4
3 + 2 = 5
3 + 3 = 6
Hint!
#define one 1....
BasicFunction206.h
#include <iostream> #define one 1 #define two 2 #define three 3
BasicFunction206.cpp
void BasicFunction206::Code() { std::cout << one << " + " << one << " = " << one + one << '\n'; std::cout << one << " + " << two << " = " << one + two << '\n'; std::cout << one << " + " << three << " = " << one + three << '\n'; std::cout << two << " + " << one << " = " << two + one << '\n'; std::cout << two << " + " << two << " = " << two + two << '\n'; std::cout << two << " + " << three << " = " << two + three << '\n'; std::cout << three << " + " << one << " = " << three + one << '\n'; std::cout << three << " + " << two << " = " << three + two << '\n'; std::cout << three << " + " << three << " = " << three + three; }
Language_Code/함수2/자가진단7
문제
10개의 정수를 입력받아 버블정렬로 내림차순 정렬을 하면서 하나의 단계가 끝날 때마다 그 정렬결과를 출력하는 프로그램을 작성하시오.
입력 예
15 93 26 8 43 10 25 88 75 19
출력 예
93 26 15 43 10 25 88 75 19 8
93 26 43 15 25 88 75 19 10 8
93 43 26 25 88 75 19 15 10 8
93 43 26 88 75 25 19 15 10 8
93 43 88 75 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
93 88 75 43 26 25 19 15 10 8
BasicFunction207.h
#include <iostream> class BasicFunction207 : public Base { private: void Function(int arr[]); };
BasicFunction207.cpp
void BasicFunction207::Code() { int arr[10]{}; for (int i = 0; i < 10; i++) { std::cin >> arr[i]; } for (int i = 1; i < 10; i++) { for (int j = 0; j < 10 - i; j++) { if (arr[j] < arr[j + 1]) { int temp{ arr[j] }; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } Function(arr); } } void BasicFunction207::Function(int arr[]) { for (int i = 0; i < 10; i++) { std::cout << arr[i] << ' '; } std::cout << '\n'; }
Language_Code/함수2/자가진단8
문제
정수 두 개를 입력받고 계산식을 매크로 함수로 작성하여 두 수의 차를 제곱한 값과 합을 세제곱한 값을 각각 출력하는 프로그램을 작성하시오.
('^'는 연산자가 아니고 거듭제곱을 뜻하는 표시이므로 거듭제곱은 별도로 계산해야함)
입력 예
5 10
출력 예
(5 - 10) ^ 2 = 25
(5 + 10) ^ 3 = 3375
BasicFunction208.h
#include <iostream> #define POW2(var) (var) * (var) #define POW3(var) (var) * (var) * (var) #define Function1(var1, var2) '(' << var1 << " - " << var2 << ") ^ 2 = " << POW2(var1 - var2) #define Function2(var1, var2) '(' << var1 << " + " << var2 << ") ^ 3 = " << POW3(var1 + var2)
BasicFunction208.cpp
void BasicFunction208::Code() { int var1, var2; std::cin >> var1 >> var2; std::cout << Function1(var1, var2) << '\n'; std::cout << Function2(var1, var2) << '\n'; }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)