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

Записать элементы одномерного массива в двумерную матрицу одним циклом - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.90
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
03.06.2011, 15:33     Записать элементы одномерного массива в двумерную матрицу одним циклом #1
записать элементы из int massive[i] записать все элементы в int array[i][j] ) одним циклом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2011, 15:33     Записать элементы одномерного массива в двумерную матрицу одним циклом
Посмотрите здесь:

C++ Переделать из одномерного массива в матрицу!
C++ Как инициализировать двумерную матрицу натуральными логарифмами?
Найти минимальные элементы в каждом столбце произвольного двумерного массива и записать их в виде одномерного C++
C++ Из одномерного массива сформировать квадратную матрицу
Из одномерного массива сформировать квадратную матрицу C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 15:55     Записать элементы одномерного массива в двумерную матрицу одним циклом #2
в каком порядке записывать то?
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
03.06.2011, 16:09  [ТС]     Записать элементы одномерного массива в двумерную матрицу одним циклом #3
В прямом порядке.
Размер матрицы N*N (N столбцов и N строчек)
Размер массива тоже N*N (N*N элементов в одной строчке)

N (с 1го по 3й элемент, например) первых элементов массива записать в 1ю строчку матрицы, потом
N (с 4го по 6й элемент, например) вторых элементов записать во вторую строчку
записывать до тех пор, пока не будет N строчек в матрице.
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 16:30     Записать элементы одномерного массива в двумерную матрицу одним циклом #4
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
#include <iostream>
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
  const int N = 6;
  int arr[N * N];
  for ( int i = 0; i < N * N; arr[i] = i, i++ );
  int matrix[N][N];
  for ( int i = 0; i < N * N; i++ )
    matrix[i / N][i % N] = arr[i];
  cout << "Array:\n";
  for ( int i = 0; i < N * N; i++ )
    cout << arr[i] << " ";
  cout << "\n\nMatrix:\n";
  for ( int i = 0; i < N; i++ )
  {
    for ( int j = 0; j < N; j++ )
      cout << matrix[i][j] << "\t";
    cout << endl;
  }
  return 0;
}
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
03.06.2011, 16:45  [ТС]     Записать элементы одномерного массива в двумерную матрицу одним циклом #5
cout << "Array:\n";

эта строчка выводит просто
0 1 2 3 4 5 )

Добавлено через 41 секунду
Код
	printf("Введите элементы массива:\n");
	for (int i=0; i<(N*N); i=i+1)
	{
		cin >> arr[i];
	}
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 16:48     Записать элементы одномерного массива в двумерную матрицу одним циклом #6
Цитата Сообщение от OffyGhost Посмотреть сообщение
cout << "Array:\n";
эта строчка выводит просто
0 1 2 3 4 5 )
строчка
C++
1
cout << "Array:\n";
выводит в консоль "Array:" и переводит на следующую строку
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
03.06.2011, 16:51     Записать элементы одномерного массива в двумерную матрицу одним циклом #7
т.е. только 6 элементов?
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
03.06.2011, 16:52  [ТС]     Записать элементы одномерного массива в двумерную матрицу одним циклом #8
Код
	for ( int i = 0; i < N * N; i++ )
	cout << arr[i] << " ";
Я имел в виду именно это, но проблема не в этом совсем у меня не могу передать массив чисел на сервер, по пути он полностью рассыпается
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 16:56     Записать элементы одномерного массива в двумерную матрицу одним циклом #9
Цитата Сообщение от OffyGhost Посмотреть сообщение
не могу передать массив чисел на сервер, по пути он полностью рассыпается
с передачей на сервер - не знаю

строчка выводит только 6 элементов потому, что в массиве 6 элементов
C++
1
const int N = 6;
можно создать динамические массив и матрицу, если нужно
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
03.06.2011, 16:59     Записать элементы одномерного массива в двумерную матрицу одним циклом #10
Цитата Сообщение от M__A__K Посмотреть сообщение

строчка выводит только 6 элементов потому, что в массиве 6 элементов
C++
1
const int N = 6;
а не 36?
arr [ N * N ]
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 17:06     Записать элементы одномерного массива в двумерную матрицу одним циклом #11
Цитата Сообщение от co6ak Посмотреть сообщение
а не 36?
arr [ N * N ]
извиняюсь, действительно 36

OffyGhost, я так понял, вы мой код изменяли/дополняли. выложите пожалуйста конечный вариант кода, возможно тогда будет легче найти ошибку
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
03.06.2011, 17:38  [ТС]     Записать элементы одномерного массива в двумерную матрицу одним циклом #12
на клиенте
C++
1
2
3
4
5
6
    int buffer2[400];
    printf("Введите элементы матрицы:\n");
    for (int i=0; i<(N*N); i=i+1)
    {
        cin >> buffer2[i];
    }

сервер

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    int i, j;
 
    printf("\nМассив с клиента: \n");
    for(i = 0; i < N*N; i++)
    {
        printf("   %d", buffer2[i]);
    }
    int matrix_transfered[20][20];
 
    for ( int i = 0; i < N * N; buffer2[i] = i, i++ );
        for ( int i = 0; i < N * N; i++ )
    matrix_transfered[i][j] = buffer2[i];
    cout << "buffer2:\n";
    for ( int i = 0; i < N * N; i++ )
    cout << buffer2[i] << " ";
    
    printf("\nИсходная матрица: \n");
    for(i = 0; i < N; i++)
    {
        printf("\n");
        for(j = 0; j < N; j++)
        printf("   %d", matrix_transfered[i][j]);
    }
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 17:42     Записать элементы одномерного массива в двумерную матрицу одним циклом #13
а где инициализация N?
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
03.06.2011, 17:44  [ТС]     Записать элементы одномерного массива в двумерную матрицу одним циклом #14
на клиенте

C++
1
2
3
4
5
6
7
8
9
10
11
    int N;
    int k = 0;
    while(k==0)
 
    {
        printf("Введите размер матрицы (от 2 до 20): N=");
        scanf ("%d", &N);
        sprintf(buffer, "%d", N);
        if ((N<2) || (N>20)) k=0;
        else k=1;
    }
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 17:46     Записать элементы одномерного массива в двумерную матрицу одним циклом #15
у меня было не так:
C++
1
2
for ( int i = 0; i < N * N; i++ )
  matrix_transfered[i][j] = buffer2[i];
а так:
C++
1
2
for ( int i = 0; i < N * N; i++ )
    matrix[i / N][i % N] = arr[i];
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
03.06.2011, 17:49  [ТС]     Записать элементы одномерного массива в двумерную матрицу одним циклом #16
с окна на клиенте
Введите элементы матрицы:
2 3 4
1 2 3
1 2 1
с окна на сервере
Массив с клиента:
2 2 0 2 -1163067342 2 0 2 -1163067343buffer2:
0 1 2 3 4 5 6 7 8
Исходная матрица:

0 1 2
3 4 5
6 7 8
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 17:51     Записать элементы одномерного массива в двумерную матрицу одним циклом #17
так нужно из матрицы массив строить или из массива матрицу?
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
03.06.2011, 17:55  [ТС]     Записать элементы одномерного массива в двумерную матрицу одним циклом #18
из массива сделать матрицу

C++
1
        for ( int i = 0; i < N * N; buffer2[i] = i, i++ );
убрал эту строчку, перестало выводить 0 1 2 3 4 5 есенно
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 18:00     Записать элементы одномерного массива в двумерную матрицу одним циклом #19
а в массиве всё равно мусор?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2011, 18:04     Записать элементы одномерного массива в двумерную матрицу одним циклом
Еще ссылки по теме:

C++ Разделить элементы одного массива на элементы другого массива, записать результат в третий массив
C++ Сдвинуть все элементы одномерного массива начиная с заданного номера к концу на 1 позицию и записать элемент
C++ Сформировать матрицу из одномерного массива

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

Или воспользуйтесь поиском по форуму:
OffyGhost
 Аватар для OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
03.06.2011, 18:04  [ТС]     Записать элементы одномерного массива в двумерную матрицу одним циклом #20
Ага. этот гребаный RPC в печенке сидит уже, через него только char хорошо передавать.
начинаю передать матрицу либо массив - вылазит мусор после пересылке. Сам алгоритм то отлично работает
Yandex
Объявления
03.06.2011, 18:04     Записать элементы одномерного массива в двумерную матрицу одним циклом
Ответ Создать тему
Опции темы

Текущее время: 01:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru