Другие языки программирования и технологии

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

// Аня_Бобякина_2011-12-27
#include <iostream>
#define N 6
using namespace std;

int main()
{
int a[N] = {64, 32, 16, 8, 4, 0};
int b[N] = {65, 33, 15, 3, 2, 1};
int c[N + N];
int temp, count = 0;
// Исходный a[N]
bool flag = true;
for (int n = 0; n < N; n++)
cout << ' ' << a[n];
cout << endl;
// Исходный b[N]
for (int n = 0; n < N; n++)
cout << ' ' << b[n];
cout << endl;
// Один за другим
for (int n = 0; n < N + N; n++)
{
if (n < N) c[n] = a[n];
else c[n] = b[n - N];
cout << ' ' << c[n];
}
cout << endl;
// По очереди
for (int n = 0; n < N + N; n++)
{
if (flag)
{
c[n] = a[count];
flag = false;
}
else
{
c[n] = b[count];
flag = true;
count++;
}
cout << ' ' << c[n];
}
// По возрастанию
for (int n = 1; n < N + N; n++)
for(int m = 0; m < N + N - n; m++)
if (c[m] < c[m + 1])
{
temp = c[m];
c[m] = c[m + 1];
c[m + 1] = temp;
}
cout << endl;
for (int n = 0; n < N + N; n++)
cout << ' ' << c[n];
// По убыванию
for (int n = 1; n < N + N; n++)
for(int m = 0; m < N + N - n; m++)
if (c[m] > c[m + 1])
{
temp = c[m];
c[m] = c[m + 1];
c[m + 1] = temp;
}
cout << endl;
for (int n = 0; n < N + N; n++)
cout << ' ' << c[n];
cin.get();
return 0;
}
Медет Аханов
Медет Аханов
97 884
Лучший ответ
стал тоже отсортирован?
Cергей Порхун
Cергей Порхун
6 684
сделать массив х, сравнить первые элементы массивов, если в а меньше или такой же-- берем его за основу, если нет -- б. создаем целочисленный индекс н=0. делаем цикл, проходим по взятой основе. записываем первый элемент основы в х. записываем второй элемент массива основы в временную переменную m, делаем второй цикл внутри, который работает с вторым массивом (не основой) проходит от элемента массива с индексом н пока верно условие z < не_основа [н] , записываем новые элементы в массив x, делаем инкремент н (н++ хотя хз на чем вы пишите) .
как вариант вот так в тупую)
Улик Жулик
Улик Жулик
380

Похожие вопросы