Форум программистов, компьютерный форум CyberForum.ru

Надо создать массив путем слияния двух произвольных одномерных массивов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ работа со строками. Перевернуть, заданную пользователем строку, в отдельной функции http://www.cyberforum.ru/cpp-beginners/thread838037.html
задание- перевернуть, заданную пользователем строку, в отдельной функции; написал вот такой код, переворачиваю-> копирую->вывожу //ex7_1.cpp //переворачивает строку #include <iostream> #include <string> #include <conio.h> using namespace std;
C++ что не так с конструктором с параметрами создаю экземпляры класса , один через конструктор с параметрами но указываю параметрами он мне пишет ошибка что преобразования типов не допустимо , как мне исправит свою ошибку Объявления класса #pragma once #include <iostream> #include <fstream> #include <stdio.h> #include <time.h> using namespace std; //класс матрица class Tabel http://www.cyberforum.ru/cpp-beginners/thread838026.html
C++ сформировать двумерный массив в котором каждая строка содержит элементы массива равные номеру строки +2(увеличивается на два)
сформировать двумерный массив в котором каждая строка содержит элементы массива равные номеру строки +2(увеличивается на два) .Например запрашиваю 1 строку, открывается 3 строка , то есть увеличивается на 2.
Массив. Парные элементы массиве А удвоить, а нечетные оставить без изменений C++
элемента массива А сформировать массив B такого же размера по правилу: парные элементы массиве А удвоить, а нечетные оставить без изменений.
C++ Пишет ошибку http://www.cyberforum.ru/cpp-beginners/thread838000.html
Задача: Написать функцию, проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элементами, удаленная строка заполняется 0 и переносится в конец массива. Вот сам код: #include <iostream> using namespace std; #include <math.h> #include <stdio.h> #define ROWS 4 #define COLUMNS 4
C++ Файлы Borland C++ (консоль) Имеются два типизированных файла одинакового размера, элементами которых являются числа. Получить третий файл каждый элемент которого равен меньшему из соответствующих элементов заданных файлов. подробнее

Показать сообщение отдельно
wowofbob
2 / 2 / 0
Регистрация: 19.01.2013
Сообщений: 32
15.04.2013, 16:20     Надо создать массив путем слияния двух произвольных одномерных массивов
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
using namespace std;
 
//Печать массива:
template < typename ArrayType > 
void print_array(ArrayType * arr, const int & size) {
    for (int i = 0; i < size; ++i) {
        cout << "Array[" << i << "] = " << arr[i] << endl;
    }
}
 
//Создание массива:
template < typename ArrayType >
ArrayType * get_array(const int & size) {
    ArrayType * array = new ArrayType [size];
    for (int i = 0; i < size; ++i) {
        cout << "Array[" << i << "] = ";
        ArrayType val;
        cin >> val;
        array[i] = val;
    }
    return array;
}
 
//Слияние массивов:
template < typename ArrayType >
ArrayType * fusion(int & new_array_size, const ArrayType * arr1, const int & size1, ArrayType * arr2, const int & size2) {
    
    //Вычисление длины массива-результата слияния:
    new_array_size = size1 + size2 ;
    ArrayType * array = new ArrayType [new_array_size];
    ArrayType * ptr = array;
    
    //Надо вычислить наименьшую длину из двух поданных
    //массив, чтобы сначала заполнить новый массив парами,
    //как указано в задании:
    int limit1;
    int limit2;
    //Этот указатель понадобится для записи в новый массив
    //тех элементов, для которых не нашлось пары (короче,
    //оставшихся элементов из самого длинного массива):
    const ArrayType * MaxSizeArray;
    if (size1 < size2) {
        limit1 = size1;
        limit2 = size2;
        MaxSizeArray = arr2;
    }
    else {
        limit1 = size2;
        limit2 = size1;
        MaxSizeArray = arr1;
    }
    MaxSizeArray += limit1;
    
    for (int i = 0; i < limit1; ++i) {
        *(ptr++) = arr1[i];
        *(ptr++) = arr2[i];
    }
    
    for (int i = limit1; i < limit2; ++i) {
        *(ptr++) = *(MaxSizeArray++);
    }
    
    return array;
    
}
        
    
    
int main() {
 
    int size1;
    cout << "Size of first array is ";
    cin >> size1;
    int * arr1 = get_array < int > (size1);
    cout << endl;
    
    int size2;
    cout << "Size of second array is ";
    cin >> size2;
    int * arr2 = get_array < int > (size2);
    cout << endl;
    
    int fusion_result_size;
    int * fusion_result = fusion < int > (fusion_result_size, arr1, size1, arr2, size2);
    print_array < int > (fusion_result, fusion_result_size);
    
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru