Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
1

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

17.10.2016, 21:38. Показов 1760. Ответов 21
Метки нет (Все метки)

Итак есть задание:" n- количество масивов какие нужно обеденить, a- масив указателей на масивы которые нужно нужно обьеденить size - помещает в себе размер каждого масива resultArray конечный масив написал такой код на VS
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
#include "stdafx.h"
#include "iostream"
using namespace std;
int maіn() {
    void UnіonMas(int n, int **a, int *sіze, int *resultArray){
        void ІnіtIndex(int *, int);
        int Mіn(int **, int *, int *, int);
        int *іndex = new int[n];
        ІnіtIndex(іndex, n);
        int x = 0;
        for (іnt і = 0; і < n; і++)
            for (int j = 0; j < sіze[і]; j++, x++)
    }
    void ІnіtIndex(int *x, int n)
    {
        for (int і = 0; і < n; і++)   x[і] = 0;
    }
 
    int TotalSіze(int *sіze, int n)
    {
        for (int sum = 0, і = 0; і < n; і++)  sum += sіze[і];
        return sum;
    }
 
    voіd Prіnt(іnt *x, const int n)
    {
        for (int i = 0; i < n; i++)  cout << x[i] << '  ';
 
    }
    return 0;
}
ругается в первых строках а именно : void UnіonMas(int n, int **a, int *sіze, int *resultArray){ говорит что там нужно ";" и больше не ругается ни на что в чем проблема?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2016, 21:38
Ответы с готовыми решениями:

Сортировка масивов
Посмотрите пжл что не так# include &lt;iostream&gt; using namespace std; int main() {int...

Обработка масивов
Задана матрица размерностью N * M . Поменять местами строки матрицы по алгоритму : 1 с последним ,...

Перенагрузка масивов
Перегрузить масив в виде очереди.Выручайте АДТ - черга. Додатково перевантажити наступні операції:...

Сортировка масивов
Сабж. Не могу додуматься до решения, особенно вторая задача. 1. Организуйте массив, содержащий 20...

21
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
17.10.2016, 21:40 2
Зачем ты функции в main() вставил? Перед main() сделай.
0
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
17.10.2016, 21:42  [ТС] 3
ничего не поменяло ета же строка далее и ругается плюс для любой функции описаной в main матюкается на ; после {
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
17.10.2016, 21:43 4
Показывай актуальный вариант.
0
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
17.10.2016, 21:47  [ТС] 5
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
#include "stdafx.h"
#include "iostream"
using namespace std;
void ІnіtIndex(int *x, int n)
{
    for (int і = 0; і < n; і++)   x[і] = 0;
}
int TotalSіze(int *sіze, int n)
{
    int sum,i;
    for (sum = 0, i = 0; i < n; i++)  sum += sіze[i];
    return sum;
}
 
void UnionMas(int n, int **a, int *sіze, int *resultArray) {
    void ІnіtIndex(int *, int);
    int Mіn(int **, int *, int *, int);
    int *іndex = new int[n];
    ІnіtIndex(іndex, n);
    int x = 0;
    for (int і = 0; і < n; і++)
        for (int j = 0; j < sіze[і]; j++) { x++; }
}
void maіn() {
 
    void Prіnt(int *x, const int n)
    {
        for (int i = 0; i < n; i++)  cout << x[i] << '  ';
 
    }
}
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
17.10.2016, 21:50 6
Строки 16-17 убери. И Print() почему в main()? Каждая функция объявляется отдельно.
0
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
17.10.2016, 21:53  [ТС] 7
main не будет же пустой и удаление етих строк проблему не решило
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
17.10.2016, 21:55 8
Над main() объявляешь, а в main() вызываешь.
Строки 4-7 - объявление, строка 19 - вызов. Разницу видишь?
0
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
17.10.2016, 22:01  [ТС] 9
так для вызова Print надо прописать Print(x[n]); ??
0
Эксперт С++
4974 / 3081 / 456
Регистрация: 10.11.2010
Сообщений: 11,160
Записей в блоге: 10
17.10.2016, 22:09 10
Цитата Сообщение от olegos15 Посмотреть сообщение
так для вызова Print надо прописать Print(x[n]); ??
Нет. Надо писать: Print( x, n );, или Print( a, b );, или Print( arr, size ); ...
0
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
17.10.2016, 22:18  [ТС] 11
в даном случае Print( x, n ); не определяются
0
Эксперт С++
4974 / 3081 / 456
Регистрация: 10.11.2010
Сообщений: 11,160
Записей в блоге: 10
17.10.2016, 22:20 12
Цитата Сообщение от olegos15 Посмотреть сообщение
в даном случае Print( x, n ); не определяются
И правильно. У тебя же их нет.
0
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
17.10.2016, 22:35  [ТС] 13
как тогда отсюда получить x[i]?
C++
1
2
3
4
5
 void Prіnt(int *x, const int n)
    {
        for (int i = 0; i < n; i++)  cout << x[i] << '  ';
 
    }
туплю
0
Эксперт С++
4974 / 3081 / 456
Регистрация: 10.11.2010
Сообщений: 11,160
Записей в блоге: 10
17.10.2016, 22:45 14
Цитата Сообщение от olegos15 Посмотреть сообщение
как тогда отсюда получить x[i]?
Не понял вопроса.

Цитата Сообщение от olegos15 Посмотреть сообщение
туплю
Золотые слова.
1
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
17.10.2016, 22:58  [ТС] 15
надо вивести новый масив созданный из комбинации двох предидущих но как
0
Эксперт С++
4974 / 3081 / 456
Регистрация: 10.11.2010
Сообщений: 11,160
Записей в блоге: 10
17.10.2016, 23:01 16
Цитата Сообщение от olegos15 Посмотреть сообщение
но как
Х.з. Для чего ты всё это писал?
0
Комп_Оратор)
Эксперт по математике/физике
8719 / 4428 / 598
Регистрация: 04.12.2011
Сообщений: 13,270
Записей в блоге: 16
18.10.2016, 01:00 17
Цитата Сообщение от olegos15 Посмотреть сообщение
масивы которые нужно нужно обьеденить
Благородная цель. Хоть и непонятная. Масивам не позавидуешь, но если подумать, то в сравнении со словом "обьеденить" им ещё повезло.
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
#include <iostream>
using namespace std;
 
const int arrays_number = 3;
int arrays_sizes[]={3,4,5};
int one[]={1,2,3};
int two[]={4,5,6,7};
int three[]={8,9,10,11,12};
 
int common_array(int **arrays,  int index)
{
    int i=0, ind, siz=0;
for( ; i < arrays_number; ++i)
    {
        siz+=arrays_sizes[i];
        ind=index-siz;
        if(ind<0)
        {
            ind+=arrays_sizes[i];
            break;
        }
    }
return arrays[i][ind];
}
 
int main(int argc, char* argv[])
{
    int *arrays[] = {one, two, three};
 
    int common_size=0 ;
    for(int i=0; i<arrays_number; ++i)
        {
            common_size += arrays_sizes[i];
        }
 
    for(int i=0; i<common_size; ++i) cout<<common_array(arrays,  i)<<' ';
 
    cout<<endl;
system("pause");
return 0;
}
Кажется, - это в точности как раз не то, что нужно. Значит на один вариант меньше останется до цели.
0
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
30.10.2016, 13:25  [ТС] 18
в задани количество, размер и елементы масисивов нужно ввести вручную а не задать их в коде
0
Эксперт С++
8378 / 6114 / 613
Регистрация: 10.12.2010
Сообщений: 28,531
Записей в блоге: 30
30.10.2016, 15:39 19
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
#include <iostream>
using namespace std;
 
void print_arr(int* in_first,int* in_last)
{
     for(;in_first!=in_last; ++in_first)      
        cout<< *in_first << endl;
}
 
void copy_arr(int* in_first,int* in_last, int* out_first)
{
   for(;in_first!=in_last; ++in_first, ++out_first)  
     *out_first = *in_first;
}
 
void union_arr(int* a1,unsigned a1_size, 
               int* a2,unsigned a2_size, 
               int* out_a)
{
    copy_arr(a1,a1+a1_size,out_a);
    copy_arr(a2,a2+a2_size,out_a+a1_size);
}
 
int main() 
{
    int a1[2]={1,2};
    int a2[3]={3,4,5};
    
    
    unsigned total_size= 2+3;
    int* out= new int[total_size];
    
    union_arr(a1,2,a2,3,out);
    
    print_arr(out,out+total_size);
    
    delete[] out;
    
    return 0;
}
http://ideone.com/vS7xNW
0
0 / 0 / 0
Регистрация: 28.01.2013
Сообщений: 58
31.10.2016, 17:19  [ТС] 20
так там тоже в строках 26 27
C
1
2
   int a1[2]={1,2};
    int a2[3]={3,4,5};
масивы заданы в коде а нужно ввкести их с клавы и количство их тоже ввести с клавы в етом вся суть например нужно ввести что будет 5 масивов по 3 4 5 6 7 елементов в каждом что вводит пользователь с пк и их же обеденить
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2016, 17:19

Обработка одномерных масивов.
1) Найти максимальный элемент массива A. 2) Найти среднее арифметическое элементов массива В. A...

Сортировка двух масивов с++
Помогите разработать програму, которая прописовает все числа, которые не повторяються с масива А(n)...

Обработка двумерных масивов
Задана матрица А(n,n). Определить максимальный элемент среди элементов матрицы, расположенных выше...

Програма на масив масивов
Помогите написать задачу, очень надо... Я в с++ вааше 0... Ввести прямоугольною матрицу целых...


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

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

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