Super Kawaii Cute Cat Kaoani
본문 바로가기
💻 Programming/C | C++

[C++] 코딩과제 8

by wonee1 2023. 1. 6.
728x90

7.23(배열을 함수 인자로)

크기가 10인 정수 배열 a,b를 선언하고, 이 배열로 숫자 10개씩을 각각 읽어 들인다.
두 배열을 인자로 받아 두 배열의 내용과 순서가 같으면 ture를 같지 않으면 false를 반환하는 다음 함수를 작성
 
bool isEqual(int list1[],int list2[],int size);
 

#include <iostream>
using namespace std;
bool isEqual(int list1[], int list2[], int size);
bool isEqual(int list1[], int list2[], int size) {

    for (int i = 0; i < size; i++) {
        if (list1[i] != list2[i])return false;
    }

    return true;

}
int main() {

    const int SIZE = 10;
    int a[SIZE];
    int b[SIZE];

    cout << "a :";

    for (int i = 0; i < SIZE; i++)cin >> a[i];
    cout << "b :";

    for (int i = 0; i < SIZE; i++)cin >> b[i];

    if (isEqual(a, b, SIZE)) {
        cout << "a,b는 내용이 같은 배열이다"<<endl;
    }
    else {
        cout << "a,b는 내용이 다른 배열이다";
    }

    return 0;
}

 
 

a와 b의 배열이 같을 때 실행 결과

 

a와 b의 배열이 같지 않을 때 실행 결과

 


7.26(두 개의 정렬된 배열을 하나로 통합)

크기가 10인 두 배열 a,b를 선언하고, 각 배열에 10개 이내의 크기 순으로 정렬된 양의 정수를 읽어 들인다.(읽어 들일 데이터의 끝을 표시하기 위해 -1을 사용)
배열 list1,list2를 입력 인자로 받아 들이고, 이 배열의 내용을 크기가 증가하는 순으로 통합한 결과가 list3에 저장되도록 하는 아래 함수를 정의하시오.
 
void merge(int list1[],int size1,int list2[],int size2,int list3[])
 
크기가 20인 배열 c를 선언하고 위에서 정의한 함수를 이용하여 배열 a,b의 내용을 통합한 결과를 배열 c로 저장하고, 이를 출력하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;
void merge(int a[], int size1, int b[], int size2, int c[]);
void print(int a[], int size) {

	for (int i = 0; i < size; i++)cout << a[i] << " ";

}
void merge(int a[], int size1, int b[], int size2, int c[]) {

	int i = 0, j = 0, k = 0;

	while (i < size1 && j< size2) {
		if (a[i] < b[j])c[k++] = a[i++]; //a와 b를 비교하여 작은 것을 c에 담는다
		else c[k++] = b[j++];
	}

	while (i < size1)c[k++] = a[i++];
	while (j < size2)c[k++] = b[j++]; //남은 배열을 c에 담는다
}
int main() {
	int list1[] = { 1,3,4,7,10,11,13,17,20 };
	int list2[] = { 2,3,4,7,9,11,12,14,15,17,19,25,26,30 };
	int list3[100];

	merge(list1, sizeof(list1)/ sizeof(int), list2, sizeof(list2)/ sizeof(int), list3);
	print(list3, sizeof(list1)/ sizeof(int) + sizeof(list2)/sizeof(int));

	return 0;
}
실행 결과

 
 


 

7.27(배열을 함수 인자로)

10개의 정수를 배열로 읽어 들이고, 배열에 저장된 숫자가 정렬이 되어 있는지 여부를 출력하는 프로그램을 작성하려고 한다. 다음 함수를 정의하고 이 함수를 이용해서 위 프로그램을 작성하시오.
 
bool isSorted(int list[],int size);
 

#include <iostream>
using namespace std;

bool isSorted(int d[], int size) {
    for (int i = 0; i < size; i++)
        cin >> d[i];
   
    for (int a = 0; a < (size - 1); a++) {
        if (d[a] <= d[a + 1])
            continue;
        else
            return false;
    }
    return true;
}

int main() {
    const int SIZE = 10;
    int data[SIZE];
 
    cout << "data[i]:";
    bool result = isSorted(data, SIZE);
    if (result)
        cout << "데이터가 정렬되어있음";
    else
        cout << "데이터가 정렬되어있지않음";
    return 0;


}
데이터가 정렬되어 있을 때 실행 결과
데이터가 정렬되어 있지않을때의 실행 결과

 
 

728x90

'💻 Programming > C | C++' 카테고리의 다른 글

[C++] 코딩과제 10  (0) 2023.01.06
[C++] 코딩과제 9  (1) 2023.01.06
[C++] 코딩 과제 7  (0) 2023.01.06
[C++] 코딩과제 1~6  (0) 2022.11.01