Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 1
Регистрация: 31.08.2015
Сообщений: 49
1

Объединение двух массивов

05.06.2017, 21:55. Просмотров 4647. Ответов 2
Метки нет (Все метки)

Здравствуйте, нужна помощь с программой на Си.
"Даны два массива х и y, элементы каждого из которых упорядочены по неубыванию. Объединить элементы этих двух массивов в один массив z, так, чтобы они снова оказались упорядоченными по неубыванию."
Я её сделал, но её не приняли, так как я использовал сортировку пузырьком. Нужно без сортировок, используя факт того, что они изначально упорядочены по не убыванию. И элементы должны повторяться. Т.е. пусть А=1,2,3. B=1,2,3,4,5. Тогда С=1,1,2,2,3,3,4,5.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2017, 21:55
Ответы с готовыми решениями:

Объединение двух упорядоченных массивов
Даны массив A из N целых элементов массив B из M целых элементов. Оба массива упорядочены по...

Объединение и пересечение двух массивов
доброго времени суток, нужна помощь со следующим кодом. void BuildGroup(int** group, int* count)...

Определить объединение двух полей. Первое поле – массив из двух байт, второе – слово
Помогите написать программу( лучше с комментариями чтобы разобраться) Определить объединение из...

Объединение union для разных массивов
Пожалуйста объясните, можно ли как то применить union в моем случае. Сложилась проблема с...

2
424 / 417 / 158
Регистрация: 21.05.2016
Сообщений: 1,329
06.06.2017, 03:41 2
Лучший ответ Сообщение было отмечено MrGluck как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#define SIZE(x)  (sizeof(x) / sizeof((x)[0]))
 
int main() {
    int a[] = {1,2,3};
    int b[] = {1,2,3,4,5};
    int c[SIZE(a) + SIZE(b)];
    int i = 0;
    int j = 0;
    int k = 0;
 
 
    while (i < SIZE(a) && j < SIZE(b)) {
        c[k++] = a[i] < b[j] ? a[i++] : b[j++];
    }
 
    while (i < SIZE(a)) c[k++] = b[i++];
    while (j < SIZE(b)) c[k++] = b[j++];
 
    for (i=0; i < SIZE(c); i++) printf("%d ", c[i]);
    printf("\n");
 
    return 0;
}
0
313 / 266 / 87
Регистрация: 27.05.2017
Сообщений: 1,350
06.06.2017, 03:42 3
Сравниваются 2 элемента каждого массива, начиная с первого. Тот элемент, который меньше, помещается в новый массив, и индекс того массива, из которого взят элемент, увеличивается на 1. И так до исчерпания обоих массивов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2017, 03:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Объединение двух массивов в один с чередованием элементов исходных массивов.
Вариант 4 (упр 1 и 2)Помогите написать ребят! в частности не получается написать 2 задачу с...

Объединение двух массивов в один с чередованием элементов исходных массивов
Сила, и направление ветра на горном плато регистрируются один раз в день по очереди двумя...

Объединение двух массивов
Допустим есть два массива users и seasons. В массиве users значения id_users пользователя...

Объединение двух массивов
Пожалуйста! Дано два впорядкованих за зростанням масиви A(m) та B(n). Отримати з них за допомогою...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.