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

динамическая матрица - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывод содержимого и другие операции с файлом http://www.cyberforum.ru/cpp-beginners/thread675150.html
Требования: 1. Использование функций работы со строками из библиотеки <string.h>. 2. Использование операторов работы c динамической памятью new и delete. 3. Предусмотреть загрузку исходного текста из ASCII файла. 4. Предусмотреть форматированный вывод результатов работы программы на экран. Задание: С помощью текстового редактора создать файл, содержащий текст, длина которого не...
C++ Составить вектор из сумм элементов диагоналей, параллельных главной диагонали Составить вектор из сумм элементов диагоналей, параллельных главной диагонали. Первый элемент вектора - верхний правый Вот мой код, всё работает, но не совсем правильно. Почему то первый выводится 0, и не выводятся суммы самых ближних параллельных диагоналей к главной, то есть для матрицы 10х10 1 2 2 2 2 2 2 2 2 2 3 1 2 2 2 2 2 2 2 2 3 3 1 2 2 2 2 2 2 2 3 3 3 1 2 2 2 2 2 2 3 3 3 3... http://www.cyberforum.ru/cpp-beginners/thread675139.html
Задано натуральное n. Вычислить сумму C++
в картинке условие, помогите решить, уже несколько дней голову ломаю и не могу смекнуть как это решить...
Присвоить целой переменной d к-ую цифру из дробной части положительного вещественного числа x C++
Присвоить целой переменной d к-ую цифру из дробной части положительного вещественного числа x.
C++ Вызов функции! http://www.cyberforum.ru/cpp-beginners/thread675124.html
Почему-то подчеркивает вот этот вызовsum sum(pa,pb,pc); . В чем проблема? #include <iostream> #include <locale.h> #include <conio.h> #include <math.h> using namespace std; void sum(int *x,int *y) {
C++ цикл for Задача написать программу для решения определенного примера. Ошибка состоит в том, что цикл for работает не правильно. выполняется только 1 раз. ПОмогите пожалуйста найти ошибку. #include <iostream.h> #include <math.h> #include <stdio.h> void main() { double x,x1,x2,dx,a,b,c,n,F; подробнее

Показать сообщение отдельно
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
20.10.2012, 00:47     динамическая матрица
Tiva, код, приведенный вами выше работает абсолютно верно.
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
#include <iostream>
#include <vector>
#include <ctime>
using namespace std;
#define endline cout<<endl
#define ROWS 1
#define COLS 1
using namespace std; 
int main()
{
    int count=0;
    srand(time(NULL));
    
    vector <vector<int> > matr(ROWS, vector<int>(COLS));//тут вы создаете матрица 1х1. т.е. всего из одного элемента
    for ( int i = 0; i < ROWS; ++i )
        for ( int j = 0; j < COLS; ++j )
        {
            matr[i][j] = count;//тут вы зануляете этот единственный элемент
            count++;
        }
    
    cout << "Matrix:" << endl;
    for ( vector< vector<int> >::const_iterator i = matr.begin(); i != matr.end(); ++i )
    {
        copy(i->begin(), i->end(), ostream_iterator<int>(cout, "\t"));//весь этот цикл выведет только 0 
        cout<<endl;
    }
    endline;
    
    matr.push_back(vector<int>(matr.size())); //добавление строки размером в 1 элемент, т.к. matr.size вернет 1. 
    //Теперь матрица состоит из двух строк, в каждой из которых по одному элементу
    //элемент в только что добавленной строке равен 0 по умолчанию
    
 
    for ( vector< vector<int> >::const_iterator i = matr.begin(); i != matr.end(); ++i )
    {
        copy(i->begin(), i->end(), ostream_iterator<int>(cout, "\t"));//этот цикл соответственно выведет два нуля друг под другом    
        cout<<endl;
    }
    endline;
    
    vector<int> new_row(5);   //создается вектор из пяти нулей
    matr.push_back(new_row);//добавление этого вектора в матрицу в качестве строки
 
//==
    for ( int i = 0; i < matr.size(); ++i )
        for ( int j = 0; j < matr[i].size(); ++j )
        {
            matr[i][j] = count;//теперь count равен 1, соответственно единственный элемент первой строчки также будет равен 1
            count++;
        }
//==
 
 
    for ( vector< vector<int> >::const_iterator i = matr.begin(); i != matr.end(); ++i )
    {
        copy(i->begin(), i->end(), ostream_iterator<int>(cout, "\t"));    
        cout<<endl;
    }
}
Добавлено через 2 минуты
Цитата Сообщение от Tiva Посмотреть сообщение
мне надо чтоб получилось так:
Можно так. Т.е. сразу создаем матрицу 3 на 7. Затем заполняем ее
C++
1
2
3
4
5
6
7
8
9
vector <vector<int> > matr(3, vector<int>(7));
 
int count = 1;
for ( int i = 0; i < matr.size(); ++i )
   for ( int j = 0; j < matr[i].size(); ++j )
   {
      matr[i][j] = count;
      count++;
   }
 
Текущее время: 06:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru