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

Заполнение двумерного динамического массива случайными числами от 1 до N - C++

Восстановить пароль Регистрация
 
Zaytsevskiy
0 / 0 / 0
Регистрация: 20.02.2015
Сообщений: 7
28.06.2016, 12:05     Заполнение двумерного динамического массива случайными числами от 1 до N #1
Не понимаю, в чём ошибка.. Можно ли вообще сравнивать
C++
1
for (int i = 0; mass[i]!=NULL; i++)
mass[i] с NULL??

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
#include <fstream>
#include <iostream>
#include <cmath>
#include <ctime>
 
using namespace std;
 
void createPop(int **mass, int n) {
    srand(time(NULL));
    for (int i = 0; mass[i]!=NULL; i++) {
        for (int j = 0; mass[i][j] != NULL; j++) {
            
            mass[i][j] = rand() % n + 1;
        }
    }
}
 
int main() {
    int startPop, vertexNum;
    vertexNum = 6;
    startPop = vertexNum / 2;
    int **mass = new int *[startPop];
    for (int i = 0; i < startPop; i++) //инициализируем массив
    {
        mass[i] = new int[vertexNum];
    }
          for (int i = 0; mass[i] != NULL; i++) { //заполняем нулями весь массив
        for (int j = 0; mass[i][j] != NULL; j++) {
 
            mass[i][j] = 0;
        }
    }
    createPop(mass, vertexNum);
 
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2016, 12:05     Заполнение двумерного динамического массива случайными числами от 1 до N
Посмотрите здесь:

C++ Заполнение динамического массива случайными числами
Заполнение двумерного массива случайными числами из заданного диапазона C++
C++ Не получается заполнение двумерного массива случайными числами с указанием количества строк и столбцов.
Заполнение двумерного массива случайными числами, его построчная сортировка C++
Заполнение двумерного массива случайными числами C++
Заполнение двумерного массива случайными числами C++
C++ Заполнение двумерного динамического массива числами из диапазона от -10 до 10
C++ Заполнение двумерного динамического массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
28.06.2016, 12:17     Заполнение двумерного динамического массива случайными числами от 1 до N #2
С какой вообще стати Вы туда запихали такие условия
C++
1
2
3
for (int i = 0; i<startPop; i++) //заполняем нулями весь массив
        for (int j = 0; j<vertexNum; j++)
             mass[i][j] = 0;
C++
1
2
3
4
5
6
void createPop(int **mass, int n,int m) {
    // srand(time(NULL)); эта строка должна быть в начале main
    for (int i = 0; i<n; i++) 
        for (int j = 0; j<m; j++)
            mass[i][j] = rand() % 100 + 1;
}
C++
1
createPop(mass, startPop,vertexNum);
nofx
7 / 7 / 1
Регистрация: 28.10.2012
Сообщений: 85
Завершенные тесты: 1
28.06.2016, 13:01     Заполнение двумерного динамического массива случайными числами от 1 до N #3
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
#include <iostream>
#include <cmath>
#include <ctime>
 
using namespace std;
static int Row, vertexNum;
 
void createPop(int **mass, int n) {
    srand(time(0));
    for (int i = 0; i < Row ; i++) {
        for (int j = 0; j < vertexNum; j++) 
            mass[i][j] = rand() % n + 1;
    }
}
 
void deletePop(int **mass)
{
    for (int i = 0; i < Row; i++)
        delete[] mass[i];
}
 
ostream& operator<<(ostream &os, const int **mass)
{
    for (int i = 0; i < Row; i++) {
        for (int j = 0; j < vertexNum; j++)
        {
            os << mass[i][j];
        }
        os << endl;
    }
        return os;
}
 
int main() {
    vertexNum = 6;
    Row = vertexNum / 2;
    int **mass = new int *[Row];
    for (int i = 0; i < Row; i++) //инициализируем массив
    {
        mass[i] = new int[vertexNum];
    }
 
    for (int i = 0; i < Row; i++) { //заполняем нулями весь массив
        for (int j = 0; j < vertexNum; j++)
            mass[i][j] = 0;
    }
    createPop(mass, vertexNum);
    cout << const_cast<const int **>(mass);
 
    deletePop(mass);
 
    system("pause");
}
Вы обращались (сравнивали) "неициализованную" память с типом NULL. Видимо, так нельзяяя..

вот, кстати, темка также про этот "тип": обход динамического массива.
Yandex
Объявления
28.06.2016, 13:01     Заполнение двумерного динамического массива случайными числами от 1 до N
Ответ Создать тему
Опции темы

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