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

Сформировать матрицу из элементов вектора - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
19.02.2013, 22:53     Сформировать матрицу из элементов вектора #1
Доброго дня всем. Стоит такая задача:
Выполните задание 2 лабораторной работы 1, но размерности двумерного массива спросите у пользователя, а память под двумерный массив захватите динамически. Причем размер двумерного массива может не совпадать с размером одномерного - продумайте поведение программы в этом случае (это не ошибка!).

Собственно задание 2 лабы 1 заключается в следующем: Из предыдущего одномерного сформировать двумерный массив [5][25]. Вывести адреса первого и последнего элементов каждой строки.

Код этого задания:

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
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
const int row = 5;
const int column = 25;
int b[5][25];
int a[125] =
{16, 78, 99, 6, -29, 19, -52, 65, -88, 51,
 
-79, -22, 32, -25, -62, -69, -2, -59, -75, 89,
 
-87, 95, -22, 85, -49, -75, 76, 73, -59, -52,
 
30, 49, -28, -48, 0, 57, -6, -85, 0, -18,
 
-97, -21, -95, 64, 22, -2, 69, -84, -1, -71,
 
-25, 47, 72, 43, 15, -44, 44, 61, 4, 74,
 
88, -61, 0, -64, -83, 97, 0, 90, 15, 8,
 
-54, 19, 73, 35, -67, -87, 85, -99, -70, 10,
 
98, 58, -10, -29, 95, 62, 77, 89, 36, -32,
 
78, 60, -79, -18, 30, -13, -34, -92, 1, -38};
int i=0,j=0;
int *ptri = &i;
int *ptrj = &j;
for (int k=0; k<125; ++k) {
if (!((k+1)%25)) {
*ptrj=0;
*ptri+=1;
}
b[i][j++] = *(a+k);
}
 
 
for ( *ptri = 0; *ptri < 5; *ptri+=1) {
cout << &b[i][0] << "\t" << &b[i][24] << "\n";
}
 
system("pause");
return 0;
}

Собственно как я понимаю надо код который выше переделать под первое задание..но я что-то вообще не представляю как это сделать...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2013, 22:53     Сформировать матрицу из элементов вектора
Посмотрите здесь:

Сформировать из фрагмента матрицы А(na,ma) новую матрицу B(nb,mb), сумма элементов в которой максимальна. C++
Сформировать матрицу, найти наибольшее среди средних арифметических элементов ее строк C++
C++ Сформировать матрицу размером MxN и найти наибольшее среди средних арифметических элементов ее строк.
Определить количество положительных элементов вектора С(10) и заменить этим значением минимальный элемент вектора А(5) C++
Сформировать матрицу, в которой столбцы расположены в порядке возрастания сумм их элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Iron Acorn
 Аватар для Iron Acorn
12 / 12 / 1
Регистрация: 28.09.2012
Сообщений: 39
19.02.2013, 23:13     Сформировать матрицу из элементов вектора #2
Вот так двумерный массив в динамической памяти задется:
C++
1
2
3
4
5
6
7
8
9
    int n = 0;
    int m = 0;
    cout<<"Enter row:\n";
    cin>>n;
    cout<<"Enter column:\n";
    cin>>m;
    int **matr = new int* [n];
    for(int i = 0; i < n; i++)
    matr[i] = new int [m];
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
20.02.2013, 19:31  [ТС]     Сформировать матрицу из элементов вектора #3
так а как объединить опираясь на данный код мои два задания?

Добавлено через 18 часов 53 минуты
up...очень прошу мне помочь...
Iron Acorn
 Аватар для Iron Acorn
12 / 12 / 1
Регистрация: 28.09.2012
Сообщений: 39
20.02.2013, 19:54     Сформировать матрицу из элементов вектора #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Flashik66 Посмотреть сообщение
так а как объединить опираясь на данный код мои два задания?

Добавлено через 18 часов 53 минуты
up...очень прошу мне помочь...
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
// размер первого массива
    int size = 0;
    cout<<"Enter array size:\n";
    cin>>size;
    //первый массив
    int *mas = new int [size];
    //заполняем его от 1 до size
    for (int i = 0; i < 0; i ++)
    mas[i] = i+1;
    //размерность матрицы
    int n = 0;
    int m = 0;
    cout<<"Enter row:\n";
    cin>>n;
    cout<<"Enter column:\n";
    cin>>m;
    // выделение памяти
    int **matr = new int* [n];
    for(int i = 0; i < n; i++)
    matr[i] = new int [m];
    //если колличество элементов массива не равно колиичеству элементов матрицы выводим сообщение
    if(size != n*m)
    cout<<"sizes is not equal\n";
    //иначе заполняем матрицу и выводим адреса первого и последнего элемента в каждой строке
    else {
        for (int i = 0; i < n; i ++)
        for (int j = 0; j < m; j ++)
        matr[i][j] = mas[i+j];
        for (int i = 0; i < n; i ++) {
        for (int j = 0; j < m; j ++) {
            if(j == 0 || j == m -1)
            cout<<"addr matr["<<i<<"]["<<j<<"] = "<<&matr[i][j]<<endl;
        }
        }
    }
p.s. какой там у тебя первый массив должен быть не знаю
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
20.02.2013, 20:24  [ТС]     Сформировать матрицу из элементов вектора #5
{16, 78, 99, 6, -29, 19, -52, 65, -88, 51,

-79, -22, 32, -25, -62, -69, -2, -59, -75, 89,

-87, 95, -22, 85, -49, -75, 76, 73, -59, -52,

30, 49, -28, -48, 0, 57, -6, -85, 0, -18,

-97, -21, -95, 64, 22, -2, 69, -84, -1, -71,

-25, 47, 72, 43, 15, -44, 44, 61, 4, 74,

88, -61, 0, -64, -83, 97, 0, 90, 15, 8,

-54, 19, 73, 35, -67, -87, 85, -99, -70, 10,

98, 58, -10, -29, 95, 62, 77, 89, 36, -32,

78, 60, -79, -18, 30, -13, -34, -92, 1, -38};

Добавлено через 1 минуту
Это как-то влияет на программу? Просто я уже запутался окончательно...
Iron Acorn
 Аватар для Iron Acorn
12 / 12 / 1
Регистрация: 28.09.2012
Сообщений: 39
20.02.2013, 20:27     Сформировать матрицу из элементов вектора #6
Цитата Сообщение от Flashik66 Посмотреть сообщение
{16, 78, 99, 6, -29, 19, -52, 65, -88, 51,

-79, -22, 32, -25, -62, -69, -2, -59, -75, 89,

-87, 95, -22, 85, -49, -75, 76, 73, -59, -52,

30, 49, -28, -48, 0, 57, -6, -85, 0, -18,

-97, -21, -95, 64, 22, -2, 69, -84, -1, -71,

-25, 47, 72, 43, 15, -44, 44, 61, 4, 74,

88, -61, 0, -64, -83, 97, 0, 90, 15, 8,

-54, 19, 73, 35, -67, -87, 85, -99, -70, 10,

98, 58, -10, -29, 95, 62, 77, 89, 36, -32,

78, 60, -79, -18, 30, -13, -34, -92, 1, -38};

Добавлено через 1 минуту
Это как-то влияет на программу? Просто я уже запутался окончательно...
поменяй задание элементов массива mas на свой
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2013, 00:40     Сформировать матрицу из элементов вектора
Еще ссылки по теме:

Составить главную программу и функцию. Для данного вектора А(М) найти количество неповторяющихся элементов вектора C++
Составить программу для подсчета произведения нечетных элементов двумерной матрицы В размерности m × n. Сформировать матрицу генератором случ C++
Сформировать и вывести на экран матрицу А размерами N*M элементов C++

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

Или воспользуйтесь поиском по форуму:
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
21.02.2013, 00:40  [ТС]     Сформировать матрицу из элементов вектора #7
C++
1
2
3
4
5
6
7
8
int size = 0;
    cout<<"Enter array size:\n";
    cin>>size;
    //первый массив
    int *mas = new int [size];
    //заполняем его от 1 до size
    for (int i = 0; i < 0; i ++)
    mas[i] = i+1;
заменить на mas={16, 78, 99, 6, -29, 19, -52, 65, -88, 51,

-79, -22, 32, -25, -62, -69, -2, -59, -75, 89,

-87, 95, -22, 85, -49, -75, 76, 73, -59, -52,

30, 49, -28, -48, 0, 57, -6, -85, 0, -18,

-97, -21, -95, 64, 22, -2, 69, -84, -1, -71,

-25, 47, 72, 43, 15, -44, 44, 61, 4, 74,

88, -61, 0, -64, -83, 97, 0, 90, 15, 8,

-54, 19, 73, 35, -67, -87, 85, -99, -70, 10,

98, 58, -10, -29, 95, 62, 77, 89, 36, -32,

78, 60, -79, -18, 30, -13, -34, -92, 1, -38};

так?
Yandex
Объявления
21.02.2013, 00:40     Сформировать матрицу из элементов вектора
Ответ Создать тему
Опции темы

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