Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.90
OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
#1

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

03.06.2011, 15:33. Просмотров 3303. Ответов 20
Метки нет (Все метки)

записать элементы из int massive[i] записать все элементы в int array[i][j] ) одним циклом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2011, 15:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Записать элементы одномерного массива в двумерную матрицу одним циклом (C++):

Записать элементы одномерного массива в двумерный по алгоритму - C++
Создал одномерный массив заполнил его числами от 1 до 15: const int vershini = 4, uzli = 15,kolvouzlov = 8; int...

Найти минимальные элементы в каждом столбце произвольного двумерного массива и записать их в виде одномерного - C++
Найти минимальные элементы в каждом столбце произвольного двумерного массива и записать их в виде одномерного массива есть код в c#,...

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

Как инициализировать двумерную матрицу натуральными логарифмами? - C++
Всем привет, столкнулся с небольшой проблемой, мне нужно инициализировать матрицу в таком виде: A = { {ln2,...

Переделать из одномерного массива в матрицу! - C++
Рассортировать строки динамической матрицы с одинаковым количеством элементов в каждой строке по i-му наименьшему элементу строки, где i –...

Сформировать матрицу из одномерного массива - C++
Ребята нужна помощь. Как понимать эту часть условия. Благодарен за любой ответ! По массиву X(n) построить матрицу A(n × n) где Аij = Xi *...

20
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 15:55 #2
в каком порядке записывать то?
0
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 строчек в матрице.
0
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;
}
1
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];
	}
0
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:" и переводит на следующую строку
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
03.06.2011, 16:51 #7
т.е. только 6 элементов?
0
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] << " ";
Я имел в виду именно это, но проблема не в этом совсем у меня не могу передать массив чисел на сервер, по пути он полностью рассыпается
0
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;
можно создать динамические массив и матрицу, если нужно
0
co6ak
Кошковед
409 / 502 / 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 ]
0
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 17:06 #11
Цитата Сообщение от co6ak Посмотреть сообщение
а не 36?
arr [ N * N ]
извиняюсь, действительно 36

OffyGhost, я так понял, вы мой код изменяли/дополняли. выложите пожалуйста конечный вариант кода, возможно тогда будет легче найти ошибку
0
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]);
    }
0
M__A__K
47 / 47 / 2
Регистрация: 09.11.2010
Сообщений: 306
03.06.2011, 17:42 #13
а где инициализация N?
0
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;
    }
0
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];
0
03.06.2011, 17:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2011, 17:46
Привет! Вот еще темы с ответами:

Разделить элементы одного массива на элементы другого массива, записать результат в третий массив - C++
Как разделить элементы одного массива на элементы другого массива? есть массив a и есть массив b. размеры a=b. ввожу новый массив,...

Из одномерного массива сформировать квадратную матрицу - C++
Дан одномерный массив С из N элементов. Сформировать из элементов С квадратную таблицу максимально-возможных размеров. Формирование...

Из одномерного массива сформировать квадратную матрицу - C++
Дан одномерный массив С из N элементов. Сформировать из элементов С квадратную таблицу максимально-возможных размеров. Формирование...

Вставка в матрицу заданного одномерного массива на k-ю строку - C++
1.Вставка в матрицу заданного одномерного массива на k-ю строку (перезапись в новую матрицу)


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

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

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