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

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

Войти
Регистрация
Восстановить пароль
 
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 839
Записей в блоге: 1
#1

Двумерные массивы и Random в диапозоне - C++

22.10.2013, 19:21. Просмотров 433. Ответов 9
Метки нет (Все метки)

1. Определите функцию создания случайной матрицы заданных размеров с заданными пределами для значений элементов: int ** createRandomMatrix(int rows, int cols, int minValue , int maxValue );
2.Создайте функцию печати матрицы: void printMatrix(int ** mat, int rows, int cols);
3.Создайте функцию освобождения памяти матрицы: purgeMatrix(int ** mat, int rows);

Код ниже.Просьба найти ошибки.
1.Суть в том что когда матрица прямоугольная,, то выдает ошибку,как на скрине.
2. Random не всегда правильно работает.

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
int ** createRandomMatrix(int rows, int cols, int minValue, int maxValue ) {
    srand(unsigned(time(NULL)));
    int **matrix=new int *[rows];
 
    for(int i=0;i<cols;i++)
        matrix[i]=new int[cols];
 
    for (int i=0;i<rows;i++) 
        for (int j=0;j<cols;j++)
            matrix[i] [j]=minValue+rand()% maxValue;
 
return matrix;
}
 
void printMatrix(int ** mat, int rows, int cols) {
    for(int i=0;i<rows;i++) {
        for(int j=0;j<cols;j++)
            cout<<mat [i] [j]<<" ";
    cout<<endl;
    }
}
 
void purgeMatrix(int ** mat, int rows) {
    for(int i=0;i<rows;i++) 
        delete [] mat[i];
    delete [ ]mat;
 
}
C++
1
2
3
4
5
6
7
8
int rows,cols,minValue,maxValue;
    cout<<"Введите размеры матрицы n*m "<<endl;
    cin>>rows>>cols;
    cout<<"Введите диапозон из двух целых чисел для элементов матрицы "<<endl;
    cin>>minValue>>maxValue;
    int **matrix=createRandomMatrix(rows,cols,minValue,maxValue);
    printMatrix(matrix,rows,cols);
    purgeMatrix(matrix,rows);
0
Миниатюры
Двумерные массивы и Random в диапозоне  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2013, 19:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерные массивы и Random в диапозоне (C++):

Random-массив с разными числами в заданном диапозоне - C++
Всем доброго времени суток! Возникла небольшая проблема! Задача заключается в том, чтобы заполнить массив разными числами от 1-25. И не...

Массивы. Random - C++
#include &lt;stdio.h&gt; #include &lt;stdlib&gt; #include &lt;conio.h&gt; void main() { int a,n, i,w, kol=0; randomize(); ...

с++ двумерные массивы - C++
с++ двумерные массивы, можете помочь написать код пожалуйста №1 Заполнить матрицу А(9,9), от левого верхнего угла по диагонали: вправо -...

Двумерные массивы - C++
Никогда особо раньше не занимался программирование,больше как то математикой.И вот на первом курсе стали изучать язык Си на лекциях.На...

двумерные массивы - C++
Составить программу обмена местами максимального и минимального элементов главной диогонали матрицы 4x4. зарание спасибо!

Двумерные массивы - C++
Привет всем! если есть у кого время, посмотрите что можно сделать, нужна ваша помощь! Сформировать одномерный массив B из максимальных...

9
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 839
Записей в блоге: 1
22.10.2013, 20:28  [ТС] #2
C random разобрался
Остальное так же.


Проблема с чисткой памяти как я понял.



Проблема с чисткой памяти как я понял.[/QUOTE]

up~!
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
23.10.2013, 08:44 #3
Вы пишите за пределы отведенной вам памяти. Системе это все не нравится и она это дело рубит. Пройдитесь отладчиком, пошагово каждую строку и посмотрите на какой именно строке и при каких параметрах происходит выход за пределы.
1
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 839
Записей в блоге: 1
23.10.2013, 09:12  [ТС] #4
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Вы пишите за пределы отведенной вам памяти. Системе это все не нравится и она это дело рубит. Пройдитесь отладчиком, пошагово каждую строку и посмотрите на какой именно строке и при каких параметрах происходит выход за пределы.
Вопрос в том,как это сделать?
Во вторых дело скорее всего в очистке памяти,так как я закомментировал и все работает.
А в третьих не легче ли вам найти ошибку?
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
23.10.2013, 09:34 #5
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Вопрос в том,как это сделать?
Какая среда программирования?
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Во вторых дело скорее всего в очистке памяти
Как не называйте свои действия, но происходит именно ошибка записи (всего может быть только две ошибки с памятью - либо нельзя в нее записать, либо нельзя из нее считать). Ошибка говорит:
application wrote after end of heap of buffer
Цитата Сообщение от DmitryM5 Посмотреть сообщение
я закомментировал и все работает
Вот. Что закомментировали? Какие именно строки?
Цитата Сообщение от DmitryM5 Посмотреть сообщение
А в третьих не легче ли вам найти ошибку?
0
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 839
Записей в блоге: 1
23.10.2013, 09:38  [ТС] #6
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Какая среда программирования?

Как не называйте свои действия, но происходит именно ошибка записи (всего может быть только две ошибки с памятью - либо нельзя в нее записать, либо нельзя из нее считать). Ошибка говорит:

Вот. Что закомментировали? Какие именно строки?

Visual Studio 12 C++

Ну я закомментировал очистку памяти в конце процедура.

Не знаю то ли я сделал,но жал f10 все время и ошибка на очистке памяти
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
23.10.2013, 09:54 #7
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Visual Studio 12 C++
Кликните здесь для просмотра всего текста
http://professorweb.ru/my/ASP_NET/base/level1/1_9.php
http://www.realcoding.net/articles/o...-ostanova.html

Цитата Сообщение от DmitryM5 Посмотреть сообщение
все время и ошибка на очистке памяти
Двадцать пятая или двадцать шестая строка в первом посте?
1
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 839
Записей в блоге: 1
23.10.2013, 18:32  [ТС] #8
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Кликните здесь для просмотра всего текста
http://professorweb.ru/my/ASP_NET/base/level1/1_9.php
http://www.realcoding.net/articles/o...-ostanova.html


Двадцать пятая или двадцать шестая строка в первом посте?
Блин,ну я по main жал f10 то есть ошибка в 8 строке 1-го поста 2-го кода.

Добавлено через 7 часов 55 минут
Ошибка найдена!
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
23.10.2013, 18:50 #9
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Ошибка найдена!
Было бы неплохо если б вы ее расписали.
0
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 839
Записей в блоге: 1
23.10.2013, 21:59  [ТС] #10
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Было бы неплохо если б вы ее расписали.
В функции создания матрицы первый цикл должен быть таков:
C++
1
2
 for(int i=0;i<rows;i++)
        matrix[i]=new int[cols];
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2013, 21:59
Привет! Вот еще темы с ответами:

Двумерные массивы - C++
Ребята, помогите очень прошу! :с По массиву А(n,m) получить массив В(n) (типа boolean), присвоив k-му элементу значение true, если все...

Двумерные массивы - C++
Помогите люди добрые:) Дана целочисленная прямоугольная матрица, определить: 1) Кол-во отрицательных эл-тов тех строк, которые содержат...

Двумерные массивы в С++ - C++
Написать программу, которая дает пользователю ввести 5 фамилий студентов, а затем находит среди них самую длинную фамилию. Все фамилии...

Двумерные массивы. - C++
Помогите решить задачку!!!!!! Дана действительная квадратная матрица порядка 2N. Подучить новую матрицу, переставляя ее блоки размера N х...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
23.10.2013, 21:59
Ответ Создать тему
Опции темы

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