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

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

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

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

22.10.2013, 19:21. Просмотров 424. Ответов 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);
Миниатюры
Двумерные массивы и Random в диапозоне  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2013, 19:21     Двумерные массивы и Random в диапозоне
Посмотрите здесь:

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++
min=a; max=a; for(i=0;i&lt;m;i++) { min=a; for(j=0;j&lt;n;j++) { ...

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

Двумерные массивы.(доработка) - C++
Вообщем очень прошу вашей небольшой помощи вот с таким заданием: Дана целочисленная квадратная матрица. Определить: 1) количество...

Задача на двумерные массивы - C++
Найти среднее арифметическое положительных элементов каждого столбца Есть почти готовое решение, но, оно только правильное когда элементы...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 821
Записей в блоге: 1
22.10.2013, 20:28  [ТС]     Двумерные массивы и Random в диапозоне #2
C random разобрался
Остальное так же.


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



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

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

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

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

Visual Studio 12 C++

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

Не знаю то ли я сделал,но жал f10 все время и ошибка на очистке памяти
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
23.10.2013, 09:54     Двумерные массивы и Random в диапозоне #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 Посмотреть сообщение
все время и ошибка на очистке памяти
Двадцать пятая или двадцать шестая строка в первом посте?
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 821
Записей в блоге: 1
23.10.2013, 18:32  [ТС]     Двумерные массивы и Random в диапозоне #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 минут
Ошибка найдена!
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
23.10.2013, 18:50     Двумерные массивы и Random в диапозоне #9
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Ошибка найдена!
Было бы неплохо если б вы ее расписали.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2013, 21:59     Двумерные массивы и Random в диапозоне
Еще ссылки по теме:

Двумерные массивы- матрицы - C++
Помогите, пожалуйста, разобраться и написать программу для задачи: Найти произведение матрицы А на вектор B, полученный из элементов...

Вывод. Двумерные массивы - C++
Помогите! Третий массив(ответ) выводит какой то бред, не пойму в чем проблема. Заранее спасибо!:wall: #include &quot;stdafx.h&quot; #include...

Двумерные массивы и функции - C++
Помогите пожалуйста с заданием: Заполнить квадратную матрицу случайными числами (функция). Написать функцию для поиска минимального...

Проги на двумерные массивы - C++
Здравствуйте Все! Если кто может, нужно решить две задачи или хотя бы подсказать принцип действия ,или часть проги.:):):) Задача№1:...


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

Или воспользуйтесь поиском по форуму:
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 821
Записей в блоге: 1
23.10.2013, 21:59  [ТС]     Двумерные массивы и Random в диапозоне #10
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Было бы неплохо если б вы ее расписали.
В функции создания матрицы первый цикл должен быть таков:
C++
1
2
 for(int i=0;i<rows;i++)
        matrix[i]=new int[cols];
Yandex
Объявления
23.10.2013, 21:59     Двумерные массивы и Random в диапозоне
Ответ Создать тему
Опции темы

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