C++ 6-1

BakJeonghyun·2022년 10월 3일
0

전공C++

목록 보기
11/20

[예제 6-1]

big() 함수 중복 연습

큰 수를 리턴하는 다음 두 개의 big 함수를 중복 구현하라

int big(int a, int b); // a와 b 중 큰 수 리턴
int big(int a[], int size); // 배열 a[]에서 가장 큰 수 리턴

실행 결과
3
9

이름이 같은 두 개의 함수, 각자 잘 구현하라는 듯
이 둘은 매개변수의 종류가 다르니까 함수 중복 가능하다.

#include <iostream>
using namespace std;

int big(int a, int b) {
	if(a > b)
    	return a;
    else
    	return b;
}

int big(int a[], int size) {
	int p = a[0];
	for(int i=1; i<size; i++) {
		if(p < a[i]) { p = a[i]; }    		
    }
    return p;    
}

int main() {
	cout << big(2,3) << endl;
    
    int array[] = {1, 9, -2, 8, 6};
    cout << big(array, 5 << endl;
    	// big(array[], 5)<- 매개변수 넘겨줄 때 배열 형태 아니고 변수 이름만 넘기면 돼. 이렇게 하면 오류야.
}


[예제 6-2]

sum() 함수 중복 연습

함수 sum()을 호출하는 경우가 다음과 같을 때 sum()을 중복 구현하라.

sum(3, 5); // 3~5까지의 합을 구하여 리턴
sum(3); // 0~3까지의 합을 구하여 리턴
sum(100); // 0~100까지의 합을 구하여 리턴

실행결과
12
6
5050

#include <iostream>
using namespace std;

int sum(int a, int b) {
	int s = 0;
	for(int i=a; i<=b; i++) { s += i; }
    return s;
}
int sum(int a) {
	int s = 0;
	for(int i=0; i<=a; i++) { s += i; }
    return s;
}
int main() {
	cout << sum(3, 5) << endl; 
    cout << sum(3) << endl; 
    cout << sum(100) << endl; 
}


[예제 6-3]

디폴트 매개 변수를 가진 함수 선언 및 호출

디폴트 매개 변수를 가진 함수의 원형 선언과 구현을 분리한 사례를 보여준다.

실행 결과

*****
**********
10
10 Hello
#include <iostream>
#include <string>
using namespace std;

void star(int a=5) {
	for(int i=0; i<a; i++)
		cout << '*';
    cout << endl;
}
void msg(int b, string text="") {
	cout << b << " " << text << endl;
}

int main() {
	star();
    star(10);
    
    msg(10);
    msg(10, "Hello");
}


[예제 6-4]

디폴트 매개 변수를 가진 함수 만들기 연습

함수 f()를 호출하는 경우가 다음과 같을 때, f()를 디폴트 매개 변수를 가진 함수로 작성하라.

f(); //한 줄에 빈칸을 10개 출력한다.
f('%'); //한 줄에 '%'를 10개 출력한다.
f('@', 5); //다섯 줄에 '@'를 10개 출력한다.

실행 결과

(빈칸 10개)
%%%%%%%%%%
@@@@@@@@@@
@@@@@@@@@@
@@@@@@@@@@
@@@@@@@@@@
@@@@@@@@@@
#include <iostream>
using namespace std;

void f(char c=' ', int line=1) {	//char c=" "아니고 char c=' '임
	for(int i=0; i<line; i++) {
    	for(int j=0; j<10; j++) 
        	cout << c;
    	cout << endl;
    }
}

int main() {
	f();
	f('%');
	f('@', 5);
}

profile
I just got started a blog.

0개의 댓글