0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 14
1

Заполнение двумерного массива случайными числами

29.10.2014, 21:12. Показов 2005. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, правильно ли я создал массив и правильно ли его заполняю? Скрин результата компиляции приложен. Подчеркнутые цифры постоянно разные, остальные постоянно одинаковые.
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
class clSorting{
public:
    int **Arr;
    int k, n, m, size2d, size1d;
    clSorting();
    void swap(int & a, int & b);
    void sortThis();
    ~clSorting();
};
 
/* Конструктор класса */
clSorting::clSorting(){
    n = 3;
    m = 5;
    size1d = n*m;
    srand(time(0));
    Arr = new int* [n];
    for(int i = 0; i < n; ++i)
        Arr[i] = new int [m];
    
    /* Заполнение массива */
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){
            Arr[i][j] = rand() % 10;
        }
    }
}
 
void clSorting::swap(int & a, int & b){
    int c = a;
    a = b;
    b = c;
}
 
void clSorting::sortThis(){
    /* Разложение двумерного массива в одномерный */
    int Arr1d[n*m];
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){
            Arr1d[i*m+j] = Arr[i][j];
        }
    }
    
    /* Сортировка одномерного массива */
    for (int i = 0; i < size1d; i++)
    {                               
        int minValueIndex = i;
        for (int j = i + 1; j < size1d; j++)
        {
            if (Arr1d[j] < Arr1d[minValueIndex])
            {
                minValueIndex = j;
            }
        }
        swap(Arr1d[i], Arr1d[minValueIndex]);
        
            int maxValueIndex = size1d-1;
            for (int g = size1d-2; g > i; g--){
                if (Arr1d[g] > Arr1d[maxValueIndex]){
                    maxValueIndex = g;
                }
            }
            swap(Arr1d[size1d-1], Arr1d[maxValueIndex]);
            size1d--;
    }
    
    /* Склейка одномерного массива в двумерный */
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){
            Arr[i][j] = Arr1d[i*m+j];
        }
    }
}
 
int main(int argc, char** argv){
    clSorting *A = new clSorting();
    
    cout << "Here's your massive':" << endl;
    for (int i = 0; i < A->n; i++){
        for (int j = 0; j < A->m; j++){
            cout << A->Arr[i] << " ";
        }
        cout<< endl;
    }
    cout<< endl;
    
    A->sortThis();
    
    cout << "I have sorted your massive:" << endl;
    for (int i = 0; i < A->n; i++){
        for (int j = 0; j < A->m; j++){
            cout << A->Arr[i] << " ";
        }
        cout<< endl;
    }
    cout<< endl;
    
    system("PAUSE");
    return 0;
}
Миниатюры
Заполнение двумерного массива случайными числами  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2014, 21:12
Ответы с готовыми решениями:

Заполнение двумерного массива случайными числами
Подскажите как сделать, чтобы программа запрашивала ввод с клавиатуры или рандомно заполнение...

Заполнение двумерного массива случайными числами
Как мне сделать что бы программа выводила рандомные числа а не заданный массив как у меня#include...

Заполнение двумерного массива случайными числами по правилу
Написать программу, которая заполняет двумерный массив размерностью NxM данным следующим образом:...

Заполнение двумерного динамического массива случайными числами от 1 до N
Не понимаю, в чём ошибка.. Можно ли вообще сравнивать for (int i = 0; mass!=NULL; i++) mass с...

2
Модератор
Эксперт С++
13347 / 10642 / 6360
Регистрация: 18.12.2011
Сообщений: 28,419
29.10.2014, 21:34 2
Цитата Сообщение от Vanilla_Sunset Посмотреть сообщение
cout << A->Arr[i] << " ";
C++
1
cout << A->Arr[i][j] << " ";
1
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 14
29.10.2014, 21:37  [ТС] 3
Вот я дурааааак...
0
29.10.2014, 21:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2014, 21:37
Помогаю со студенческими работами здесь

Заполнение двумерного динамического массива уникальными случайными числами!
Ребята, Моя цель была заполнить двумерный динамический массив уникальными случайными числами (...

Заполнение двумерного массива случайными числами из заданного диапазона
Как заполнить двумерный массив размером NxN(квадрат) случайными числами от -50 до 50, а затем...

Заполнение двумерного массива случайными числами, его построчная сортировка
Написать функцию который принимает двумерный масив заполненый случайными цифрами и сортирует его по...

Не получается заполнение двумерного массива случайными числами с указанием количества строк и столбцов.
Помогите исправить что не так: #include&lt;iostream.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; void...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru