Search
Duplicate
🔢

6장. 실습문제

생성일
2022/04/11 00:57
태그
C++

6장. 실습문제

1.
add() 함수를 호출하는 main() 함수는 다음과 같다
1)
#include <iostream> using namespace std; int add(int *a, int b) { int sum = 0; for (int i = 0; i < b; i++) sum += a[i]; return sum; } int add(int *a, int b, int *c) { int sum = 0; for (int i = 0; i < b; i++) sum += a[i] + c[i]; return sum; } int main() { int a[] = {1,2,3,4,5}; int b[] = {6,7,8,9,10}; int c = add(a, 5); int d = add(a, 5, b); cout << c << endl; cout << d << endl; }
C++
복사
2)
#include <iostream> using namespace std; int add(int *a, int b, int *c = NULL) { int sum = 0; for (int i = 0; i < b; i++) { sum += a[i]; if (c != NULL) sum += c[i]; } return sum; } int main() { int a[] = {1,2,3,4,5}; int b[] = {6,7,8,9,10}; int c = add(a, 5); int d = add(a, 5, b); cout << c << endl; cout << d << endl; }
C++
복사
2.
함수 big() 을 호출하는 경우는 다음과 같다
#include <iostream> using namespace std; int big(int a, int b, int c = 100) { int big = a; int max = c; if (big < b) big = b; if (big > max) big = max; return big; } int main() { int x = big(3, 5); int y = big(300, 60); int z = big(30, 60, 50); cout << x << ' ' << y << ' ' << z << endl; }
C++
복사
3.
다음과 같은 static 멤버를 가진 Random 클래스를 완성하라. 그리고 Random 클래스를 이용해 다음과 같이 랜덤한 값을 출력하는 main() 함수도 작성하라. main()에서 Random 클래스의 seed() 함수를 활용하라
#include <iostream> #include <ctime> #include <cstdlib> using namespace std; class Random { public: static void seed() { srand((unsigned)time(0)); } // 씨드 설정 // min과 max 사이의 랜덤 정수 리턴 static int nextInt (int min = 0, int max = 32767); static char nextAlphabet(); static double nextDouble(); // 0보다 크거나 같고, 1보다 적은 실수 리턴 }; int Random::nextInt(int min, int max) { int a = 0; while (true) { a = rand() % (max+1); if (min <= a) break; } return a; } char Random::nextAlphabet() { char b = 0; while (true) { b = rand() % 'z'; if (b >= 'a' || ('A' <= b && b <= 'Z')) break; } return b; } double Random::nextDouble() { double c = -(rand() / (double)(RAND_MAX+1)); return c; } int main() { Random::seed(); cout << "1에서 100까지 랜덤한 정수 10개를 출력합니다\n"; for (int i = 0; i < 10; i++) { cout << Random::nextInt(1, 100) << ' '; } cout << endl << "알파벳을 랜덤하게 10개를 출력합니다\n"; for (int i = 0; i < 10; i++) { cout << Random::nextAlphabet() << ' '; } cout << endl << "랜덤한 실수를 10개를 출력합니다\n"; for (int i = 0; i < 10; i++) { cout << Random::nextDouble() << ' '; if (i == 4) cout << endl; } }
C++
복사