Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 13
1

Объединить два отсортированных массива

03.05.2013, 18:38. Показов 2174. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны два отсортированы по возрастанию значений массивы вещественных чисел. Сформировать из них один общий отсортированный массив. Подсказка: в алгоритме обязательно учесть, что начальные массивы уже отсортированы.

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
25
26
27
28
29
30
31
32
33
34
35
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
 
int main (void)
{
    clrscr();
    double mas1[5]={1.2312,12.234,34.45,53.47,57.56};
    double mas2[10]={2.34,4.45,35.34,45.234,46.64,51.0,65.23,73.99,78.34,94.9};
    double mas3[15];
    double *v1, *v2, *v3, n;
    n=0;
    for(v2=&mas2[0]; v2<&mas2[10], n<5; v2++)
    {
        v1=&mas1[n];
        while(*v1<*v2)
        {
            *v3=*v1;
            v3++;
            n++;
            v1++;
        }
        if(*v1>*v2)
        {
            *v3=*v2;
            v3++;
        }
    }
    for(v3=&mas3[0]; v3<&mas3[15]; v3++)
    {
        printf("%.3f\n", *v3);
    }
    system("pause");
    return 0;
}
только начал разбираться в Си, прошу помощи
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2013, 18:38
Ответы с готовыми решениями:

Объединить два отсортированных массива
Задача такая. &quot;Заданы два упорядоченных по возрастанию массива. Составить из их значений третий,...

Есть два отсортированных массива А и В. Надо в А загрузить все элементы В и отсортировать
Всем Привет!!! Нужна помощь! Не получается! Надеюсь на вашу помощь! Есть два отсортированных...

Объединить два массива в один, включив второй массив между k-ым и (k+1)-ым элементами первого массива
Может кто решить ? вовсе не могу понять ... Дано два одномерных масива различной размерности....

Объединить два массива в один
Помогите кто чем может, не получается объединить два массива в один, оч надо посмотрите кто может...

6
123 / 123 / 82
Регистрация: 03.01.2013
Сообщений: 242
03.05.2013, 18:43 2
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
 
int main(void) {
    int n=5, m=4;
    int b[]={2,4,6,8}, a[]={1,3,5,7,9}, x[n+m];
    int i, j=0, k=0;
 
    printf("%d+%d=%d\n",n,m,n+m);
    printf("array a: ");
    for (i=0; i<n; i++)
        printf("%d ", a[i]);
 
    printf("\narray b: ");
    for (i=0; i<m; i++)
        printf("%d ", b[i]);
 
    printf("\nUnion a U b: ");
    for (i=0; i<n+m; i++) {
        if (((a[j] < b[k]) || ((k>m) && (n>m))) && (j<n)) {
            x[i] = a[j];
            j++;
        } else {
            x[i] = b[k];
            k++;
        }
 
    }
 
    for (i=0; i<n+m; i++)
        printf("%d ", x[i]);
 
 
 
 
 
 
    return 0;
}
0
212 / 214 / 44
Регистрация: 20.12.2011
Сообщений: 635
03.05.2013, 18:47 3
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
 
int main (void)
{
    double mas1[5]={1.2312,12.234,34.45,53.47,57.56};
    double mas2[10]={2.34,4.45,35.34,45.234,46.64,51.0,65.23,73.99,78.34,94.9};
    double mas3[15];
    int i=0, j=0, k=0;
    while(k<15)
    {
        if(i<5)
        {
            if(j<10)
            {
                if(mas1[i]<mas2[j])
                {
                    mas3[k]=mas1[i];
                    i++;
                }
                else
                {
                    mas3[k]=mas2[j];
                    j++;
                }
            }
            else
            {
                mas3[k]=mas1[i];
                i++;
            }
        }
        else
        {
            mas3[k]=mas2[j];
            j++;
        }
        k++;
    }
    for(i=0;i<15;i++)
    {
        printf("%.3f\n", mas3[i]);
    }
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 13
04.05.2013, 15:33  [ТС] 4
в программе должны быть указатели
0
212 / 214 / 44
Регистрация: 20.12.2011
Сообщений: 635
04.05.2013, 15:48 5
Ну если код из первого поста Ваш, то и этот переделать под указатели не составит труда.
0
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 13
04.05.2013, 19:12  [ТС] 6
Всё работает, спасибо
0
0 / 0 / 3
Регистрация: 01.10.2014
Сообщений: 97
08.10.2014, 22:37 7
ritero, можеш скинуть код?
Может у тебя лаби такие же) скинь тоже.
Спасибо
0
08.10.2014, 22:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2014, 22:37
Помогаю со студенческими работами здесь

Объединить два массива в третий и отсортировать его
У нас есть два отсортированных массива, мы создали цикл, объединили в нем эти два массива, и теперь...

Объединить два массива в третий массив, отсортированный по убыванию
Помогите пожалуйста закончить. В общем есть два массива, один отсортирован по возрастанию, второй...

Объединить два кода в один
Здравствуйте! Помогите пожалуйста обьеденить два кода в СИ в один. Программы одинаковые, только...

Объединить два массива отсортированных по убыванию
Дана массивы a и b. Элементы массива a отсортированы в порядке убывания, массива b – в порядке...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru