Примітка: n=5, m=7; В третьому завданнi "лишні" клітинки масиву заповніть значенням -1 1.Дано с цілих чисел. Скориставшись покажчиками, поміняйте мiсцями елементи масиву з парними й непарними індексами (тобто ті елементи масиву, які стоять на парних мiсцях, поміняйте з елементами, які стоять на непарних місцях). 2. Дано два масиви, упорядкованi за зростанням: А[n] та [m]. Сформуйте масив С[n+m], що складається з елементів масивів А і В, упорядкований за зростанням. Використовуйте синтаксис покажчиків. • 3. Дано два масиви: А[n] i B[m]. Необхідно створити третій масив, у якому потрібно зібрати: • Елементи обох масивів; Загальні елементи двох масивів; •Елементи масиву А, які не включаються до в; •Елементи масиву В, які не включаються до А; • Елементи масивів А і В, які не є загальними для них (тобто об'єднання результатів двох попередніх варіантів). Обов'язково використовуйте синтаксис покажчиків для цього завдання.срочно!!!!c++
Answers & Comments
1)void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void swapEvenOdd(int *arr, int n) {
for (int i = 0; i < n - 1; i++) {
if (i % 2 == 0 && arr[i+1] != -1) {
swap(&arr[i], &arr[i+1]);
} else if (i % 2 == 1 && arr[i-1] != -1) {
swap(&arr[i], &arr[i-1]);
}
}
}
2)void merge(int *a, int *b, int *c, int n, int m) {
int i = 0, j = 0, k = 0;
while (i < n && j < m) {
if (a[i] < b[j]) {
c[k] = a[i];
i++;
} else {
c[k] = b[j];
j++;
}
k++;
}
while (i < n) {
c[k] = a[i];
i++;
k++;
}
while (j < m) {
c[k] = b[j];
j++;
k++;
}
}
Третий не смог сори