Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/48: Рейтинг темы: голосов - 48, средняя оценка - 4.77
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366

Массив: Как скопировать двумерный массив в другой массив?

10.07.2013, 11:58. Показов 9520. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как скопировать двумерный массив в другой массив?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.07.2013, 11:58
Ответы с готовыми решениями:

Скопировать двумерный массив в одномерный массив из 50 элементов
Создать двумерный массив 10*5, заполнить его значениями ( i^2-j^2), где i и j итераторы двумерного массива. А затем скопировать двумерный...

Скопировать динамический массив в другой массив только с положительными элементами из первого
Пользователь вводит размер массива и сам массив. Программа копирует в другой массив только положительные элементы из первого. Оба массива...

Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива
Дан двумерный массив , создать другой массив ,строками которого будут диагонали первого массива, решить с помощью классов . Класс...

25
71 / 71 / 13
Регистрация: 13.05.2012
Сообщений: 130
10.07.2013, 12:04
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
 
const int a=5;
int main()
{
    setlocale (LC_CTYPE,"rus");
int arr[a][a];
int b[a][a];
for(int i=0;i<a;i++)
for(int j=0;j<a;j++)
  arr[i][j]=j;
 
for(int i=0;i<a;i++)
for(int j=0;j<a;j++)
b[i][j]=arr[i][j];
for(int i=0;i<a;i++)
for(int j=0;j<a;j++)
cout<<b[i][j]<<endl;
    system("pause");
    return 0;
}
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
10.07.2013, 12:21  [ТС]
мне надо скопировать некоторые элементы массива.
У меня есть колода desk[4][13], заполненная рандом 5 картами. Мне надо скопировать номера массива в котором карта, и присвоить эти номера в массив hands[x][y], где x это масть, а 'y' это номер карты в массиве деск.После этого пробежаться по массиву "руки" и определить : есть ли на руках пара,две пары,три валета и т.п. (покер)

П.с. помогите только с копированием массива
0
Свистопляс
10.07.2013, 12:36
примерно так

C++
1
2
3
4
5
for (int i=0; i<4; i++)
   for (int j=0; j<13; j++)
 
if (desk[i][j])
   hands[i][j] = desk[i][j]
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
10.07.2013, 13:03  [ТС]
Цитата Сообщение от Свистопляс Посмотреть сообщение
примерно так

C++
1
2
3
4
5
for (int i=0; i<4; i++)
   for (int j=0; j<13; j++)
 
if (desk[i][j])
   hands[i][j] = desk[i][j]
Тут ты пытаешься присвоить массиву(i,j) значение массива desk(i,j);
А мне надо присвоить номер;
т.е. в hands[i] масть ( например 3- бубна),в hands[j] номер карты(например 13- туз)


Выглядит в массиве Деск у меня это так (пример) :
0 0000000000001
1 0000000000002
2 0000000000003
3 0000000000004

что означает 4 туза, в массиве hands должны быть так
0 13
1 13
2 13
3 13

Добавлено через 10 минут
Вот кусок кода,
C++
1
2
3
4
5
6
7
8
9
10
for(int x =0;x<b;x++)
{
    for(int y=0;y<a;y++)
    {
        if(desk[x][y] != 0)
        {
            
            
        }
}
как дальше то присвоить массиву hands [4] [1] значение x и y для масти и номера...
Просто в книге которую я читаю либо я это пропустил, либо это еще не описывалось(((
0
267 / 189 / 33
Регистрация: 15.01.2011
Сообщений: 681
10.07.2013, 13:25
1
2
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
10.07.2013, 13:34  [ТС]
Цитата Сообщение от ssXXss Посмотреть сообщение
Я анг. не знаю(((
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 13:35
C++
1
2
3
4
5
6
7
8
9
10
11
    for (int x = 0; x < b; x++)
    {
        for (int y = 0; y < a; y++)
        {
            if (desk[x][y] != 0)
            {
                hands[x][0] = y + 1; 
            
            }
        }
    }
1
267 / 189 / 33
Регистрация: 15.01.2011
Сообщений: 681
10.07.2013, 13:39
а гугл переводчик на что, да и потом если тупо набрать в поисковике эти функции гугл выдаст кучу примеров, или я не прав?
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
10.07.2013, 13:48  [ТС]
Цитата Сообщение от ssXXss Посмотреть сообщение
а гугл переводчик на что, да и потом если тупо набрать в поисковике эти функции гугл выдаст кучу примеров, или я не прав?
прав, я так и сделал))

Добавлено через 8 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
    for (int x = 0; x < b; x++)
    {
        for (int y = 0; y < a; y++)
        {
            if (desk[x][y] != 0)
            {
                hands[x][0] = y + 1; 
            
            }
        }
    }
Все равно не то...
Мне надо вот так
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
    for (int x = 0; x < b; x++)
    {
        for (int y = 0; y < a; y++)
        {
            if (desk[x][y] != 0)
            {
                hands[*conPtr][0] =  hands[*conPtr] присвоить x, а hands[0] присвоить значение y.
                                 *conPtr++;
                     
            }
        }
    }
и будет у меня в массиве:1 столбец это масть, 2-й это номер карты....
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 14:25
Удалил.
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
10.07.2013, 14:30  [ТС]
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
#include "iostream"
#include <stdlib.h>     
#include <time.h>  
#include <ctype.h>
#include <string.h>
void tas(int[][13]);
 
int main()
{
    setlocale( LC_ALL,"Russian" );
    srand(time(NULL));
const int a =13,b=4;
int count=1;
int *conPtr=&count;
 
 
int desk [b] [a]={0};
char *mast [b] = {"Черви","Бубны","Пики","Крести"};
char *kart [a] = {"Двойка","Тройка","Четверка","Пятерка","Шестерка","Семерка","Восмерка","Девятка","Десятка",
    "Валет","Дама","Король","Туз"};
int hands[5][1]={0};
tas(desk);
 
for(int x =0;x<b;x++)
{
    for(int y=0;y<a;y++)
    {
        if(desk[x][y] != 0)
        {
            // ???????
            hands[*conPtr][1] = 
            
            
        }
    }
}
 
 
//Просто проверка результата 
for(int x=0;x<4;x++)
{
    for(int y=0;y<1;y++)
        std::cout<<hands[x][y];
 
std::cout<<"\n";
}
 
 
for(int x=0;x<b;x++)
{
std::cout<<"   ";
    for(int y=0;y<a;y++)
        std::cout<<desk[x][y];
 
std::cout<<"\n";
}
 
 
system ("pause");
return 0;
}
 
 
 
 
 
 
 
 
void tas (int desk[][13])
{
    int mast=0,cart=0;
    for (int i=0;i<=5;i++)
    {
        mast=rand()%4;
        cart = rand()%13;
 
        while(desk[mast][cart]!=0)
        {
            mast=rand()%4;
            cart=rand()%13;
        }
        desk[mast][cart]=i;
    }
}
полный код
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 14:57
В hands почему пять строк?
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
10.07.2013, 15:03  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
В hands почему пять строк?
да строки и размеры я подгоню, все сделаю, только объясни как массив пронумеровать...
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 15:10
Если так:
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
#include "iostream"
#include <stdlib.h>     
#include <time.h>  
#include <ctype.h>
#include <string.h>
void tas(int[][13]);
 
int main()
{
    setlocale( LC_ALL,"Russian" );
    srand(time(NULL));
const int a =13,b=4;
int count=1;
int *conPtr=&count;
 
 
int desk [b] [a]={0};
char *mast [b] = {"Черви","Бубны","Пики","Крести"};
char *kart [a] = {"Двойка","Тройка","Четверка","Пятерка","Шестерка","Семерка","Восмерка","Девятка","Десятка",
    "Валет","Дама","Король","Туз"};
int hands[4][2]={0};
tas(desk);
 
for(int x =0;x<b;x++)
{
    for(int y=0;y<a;y++)
    {
        hands[x][0] = x;
        if(desk[x][y] != 0)
            hands[x][1] = y + 1;
    }
}
 
 
//Просто проверка результата 
for(int x = 0; x < 4; x++)
{
    for(int y = 0; y < 2;y++)
        std::cout << hands[x][y] << ' ';
 
std::cout<<"\n";
}
 
 
for(int x=0;x<b;x++)
{
std::cout<<"   ";
    for(int y=0;y<a;y++)
        std::cout<<desk[x][y];
 
std::cout<<"\n";
}
 
 
system ("pause");
return 0;
}
 
void tas (int desk[][13])
{
    int mast=0,cart=0;
    for (int i=0;i<=5;i++)
    {
        mast=rand()%4;
        cart = rand()%13;
 
        while(desk[mast][cart]!=0)
        {
            mast=rand()%4;
            cart=rand()%13;
        }
        desk[mast][cart]=i;
    }
}
Миниатюры
Массив: Как скопировать двумерный массив в другой массив?  
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 15:13
tas() криво работает, по несколько значений в одной строке. Или так и задумано?
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
10.07.2013, 15:16  [ТС]
Короче решим эту задачу с помощью 2-х одномерных

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
tas() криво работает, по несколько значений в одной строке. Или так и задумано?
каждая строка это карта, каждый столбец это масть...
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 15:18
Или нужно подсчитать сколько карт одной масти? Всего пять карт?

Добавлено через 1 минуту
Цитата Сообщение от MousePro Посмотреть сообщение
каждая строка это карта, каждый столбец это масть...
Может наоборот? 13 мастей? Если тринадцатая в строке - это туз, то это тринадцатый столбец.
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
10.07.2013, 15:31  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Или нужно подсчитать сколько карт одной масти? Всего пять карт?

Добавлено через 1 минуту

Может наоборот? 13 мастей? Если тринадцатая в строке - это туз, то это тринадцатый столбец.
0 0000000000001
1 0000000000002
2 0000000000003
3 0000000000004


0,1,2,3 - масти
1,2,3,4-порядковый номер карты( в раздаче используем)
номер строки ( в данном случае 13) карта, в моем случае туз

я это так представляю, может ты как то по другому интерпретируешь )_
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
10.07.2013, 15:39
Цитата Сообщение от MousePro Посмотреть сообщение
я это так представляю, может ты как то по другому интерпретируешь )_
Что тут интерпретировать? Первый индекс двумерного массива это количество строк, второй - количество столбцов. У тебя, в массиве desk[4][13], 4 строки и 13 столбцов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.07.2013, 15:39
Помогаю со студенческими работами здесь

Как в массив скопировать массив, который заполнен через указатели
Есть два файла допусти. Суть вопроса в том, что находится во втором файле. Как записать? car.h struct car { float massiv; ...

Как скопировать символ из символьного массива в другой массив
Есть массив s и r в обоих по 8 символов + \0 (окончание строки). В s есть символ &quot;т&quot;, как его скопировать, например, в r? Проблема в...

Скопировать двумерный массив
Как скопировать массив меньшей размерности в массив большей размерности? Например скопировать q в массив q1. И у массива q и у массива q1...

Как один массив скопировать в другой однотипный массив?
Всем здравствуйте. Есть два однородных массива. Второй не длиннее первого. Второй массив получается после преобразования первого (в...

Дан массив. Скопировать все его элементы в другой массив такого же размера
Пожалуйста помогите решить на C#!Срочно надо!Дан массив. Скопировать все его элементы в другой массив такого же размера: a) В том же...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru