Само задание: Ввести 2 упорядоченных массива. Получить упорядоченный массив путем слияния 2х введенных и вывести его.
Как из 2х массивов сделать один общий и затем отсортировать, и скорее всего с помощью быстрой сортировки?
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻ ҉, у меня совсем все плохо...даже с массивами разобраться не могу. сейчас пытаюсь записать 2 массива в один и теперь не работает
#include <stdio.h>
int main()
{
int m, n, i, j, r, k, l;
printf ("\nVvedite rasmer mass1: ");
scanf ("%d", &n);
printf ("\nVvedite rasmer mass2: ");
scanf ("%d", &m);
int mass1[n], mass2[m], res[r];
for (i = 0; i < n; i++)
{
printf("mass1[%d] = ", i);
scanf("%d", &mass1[i]);
}
for (j = 0; j < m; j++)
{
printf("mass2[%d] = ", j);
scanf("%d", &mass2[j]);
}
r = n + m;
for (k = 0; k < n; k++)
{
res[k] = mass1[k];
}
for (k = n; k < r; k++)
{
res[k] = mass2[l] && l++;
}
}
kate, так это не C++, а C, поменяй теги. Из ошибок:
- не инициализирована переменная r, т.е. там мусор, т.е. там может оказаться любое значение, может 0, может -500, может 672562. Нужно переместить `r = n + m` до объявления массива.
- ШТА? res[k] = mass2[l] && l++;
опять же l не инициализирован и зачем это конструкция? Тут результат будет 1, если оба(mass2[l] и l) не равны нулю и 0 в противном случае.
А ещё лучше для этой цели выделять память в куче(malloc), а не на стеке, стек не очень то большой.
Чтобы решить задачу бейте на подзадачи, в Вашем вопросе собственно уже всё есть:
1) Ввод массива
2) Слияние двух массивов
3) Алгоритм быстрой сортировки
Каждая из задач легко находится в поисковике. Хорошо бы ещё иметь тесты, которые докажут правильность решения задач.