С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
15 / 3 / 0
Регистрация: 18.01.2023
Сообщений: 282
1

Vector's range error

03.01.2024, 15:44. Показов 735. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
#include <iostream>
#include <vector>
using namespace std;
 
bool isSafe(vector < vector < int>>& matrix, int x, int y, vector < vector < bool>>& visited) {
    int rows = matrix.size();
    int cols = matrix[0].size();
    return (x >= 0 && x < rows && y >= 0 && y < cols && matrix[x][y] == 1 && !visited[x][y]);
}
 
void findLongestPath(vector < vector < int>>& matrix, int x, int y, int& maxDist, int dist, vector < vector < bool>>& visited) {
    int rows = matrix.size();
    int cols = matrix[0].size();
    if (x == rows - 1 && y == cols - 1) {
        maxDist = max(maxDist, dist);
        return;
    }
    visited[x][y] = true;
    if (isSafe(matrix, x + 1, y, visited)) {
        findLongestPath(matrix, x + 1, y, maxDist, dist + 1, visited);
    }
    if (isSafe(matrix, x, y - 1, visited)) {
        findLongestPath(matrix, x, y - 1, maxDist, dist + 1, visited);
    }
    visited[x][y] = false;
}
 
int main() {
    setlocale(0, "rus");
    int r, c,t,b,rb,cb;
    cin >> t>>r >>c>>b;
 
    vector < vector < int>>matrix(r, vector<int>(c, 0));
    for (int i = 0; i < b; i++) {
        cin >> rb >> cb;
        matrix[rb][cb] = 1;
    }
 
    vector < vector < bool>> visited(r, vector<bool>(c, false));
 
    int maxDist = 0;
    findLongestPath(matrix, 0, 0, maxDist, 0, visited);
 
    cout << "Самая длинная дорога до правого нижнего края матрицы: " << maxDist << endl;
 
    return 0;
}
вот код, хочу обозначить определенные поля матрицы единицами, ошибка в строке 36,но не знаю как решить
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2024, 15:44
Ответы с готовыми решениями:

Range error in set constructor(error #303)
Подскажите, пжл, что за ошибка? PROGRAM Test(INPUT, OUTPUT); VAR TrainNumSet: SET OF 1..3;...

Runtime Error 201:Range check error
Возникла ошибка(Runtime Error 201:Range check error) var a : array of longint; s:...

Arrays to vectors
Реализовал метод Ньютона таким образом #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; ...

Quick sort using vectors
Now that you have learned about three sorting algorithms with quadratic time complexity (Bubble,...

При вызове объекта Range, VBA самостоятельно меняет Range на rAnge
Всем доброго дня, у меня такой вопрос. По незнанию создал функцию rAnge(), теперь при вызове...

5
13 / 11 / 2
Регистрация: 07.11.2022
Сообщений: 139
03.01.2024, 18:24 2
Цитата Сообщение от Человек Челов Посмотреть сообщение
cin >> t>>r >>c>>b;
я же правильно понимаю, что когда ты тут задаёшь условно размер матрицы 10 на 10
Цитата Сообщение от Человек Челов Посмотреть сообщение
cin >> rb >> cb;
тут ты используешь значения от 0 до 9?
0
фрилансер
5846 / 5375 / 1103
Регистрация: 11.10.2019
Сообщений: 14,365
03.01.2024, 18:38 3
Цитата Сообщение от Человек Челов Посмотреть сообщение
matrix[rb][cb] = 1;
нужно проверять индексы на размер. И тогда не будет выхода за край
1
15 / 3 / 0
Регистрация: 18.01.2023
Сообщений: 282
03.01.2024, 21:22  [ТС] 4
Depozit, нет,только еденицы.
Т.е составляю путь в матрице состоящий из едениц

Добавлено через 1 минуту
Depozit, да
0
13 / 11 / 2
Регистрация: 07.11.2022
Сообщений: 139
03.01.2024, 21:22 5
Цитата Сообщение от Человек Челов Посмотреть сообщение
нет,только еденицы.
я про индексы матрицы, а не про значения. неверно выразился. тебе что бы получить доступ к крайнему элементу нужно число равное (размер матрицы - 1), ибо массивы в плюсах начинаются с нуля
1
15 / 3 / 0
Регистрация: 18.01.2023
Сообщений: 282
03.01.2024, 21:25  [ТС] 6
Алексей1153, хороший совет,но по условию задаются определенные значения которые постоянно ломают матрицу

Добавлено через 1 минуту
Depozit, скорее всего от 1 до 9,по условию

Добавлено через 18 секунд
Тогда наверное надо уменьшать на единицу
0
03.01.2024, 21:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2024, 21:25
Помогаю со студенческими работами здесь

Error 9: Subscript out of range
Делаю работу на VBA , выдает данную ошибку,причина неизвестна мне пока,прошу помощи Dim Tab11(6,...

'Range check error'
Exception class ERangeError with message 'Range check error'. Что бы это значило при компонентах...

Range Check Error
Добрый день. У меня есть DataSet к которому я пытаюсь применить фильтр, после чего получаю...

range chack error
пытаюсь перехватывать ошибку, но ничего не получается! try macro := AnsiUpperCase(func); ...

Range check error
1) Есть прога. При запуске выскакивает фатальная 201-ая ошибка Range check error (Ошибка при...

Range check error
Всем привет. Нужно посчитать количество букв 'a' в строке. Делаю { AnsiString str;...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru