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;
}


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 |