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

Почему runtime error - C++

Восстановить пароль Регистрация
 
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
21.10.2011, 19:19     Почему runtime error #1
Вот сама задача http://********/?main=task&id_task=120.

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 <algorithm>
#include <fstream>
using namespace std;
 
 
int main()
{
    ifstream fin ("INPUT.TXT");
    ofstream fout ("OUTPUT.TXT");
    int a[20][20],b[20][20] = {};
    int n,m;
    fin>>n;
    fin>>m;
    for (int i = 1; i <= n; i++ )
    {
       for (int j = 1; j <= m; j++)
        fin>>a[i][j];
    }
     b[0][0] = 1;
     b[0][1] = 1;
     b[1][0] = 1;
    for(int i = 1; i <=n; i++){
      for (int j = 1; j <= m; j++)
        if ((i == 1)&&(j == 1)) 
           b[i][j] = a[i][j]; 
        else if (i == 1) 
           b[i][j] = a[i][j] + b[i][j-1];
        else if (j == 1) 
           b[i][j] = a[i][j] + b[i - 1][j];
        else 
           b[i][j] = min(b[i - 1][j], b[i][j - 1]) + a[i][j];
    }
        
        fout<<b[n][m];
    return 0;
}
Так все работает. Выдает правильные результаты.
Но не проходит проверку на сайте. Выдает runtime error 5.

Вроде выходов за пределы массива нет. Нет нарушений математический законов. В чем дело тогда?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2011, 19:19     Почему runtime error
Посмотрите здесь:

Runtime Error C++
runtime error C++
C++ Укажите на ошибку - при запуске runtime error
C++ Runtime Error, Signal 6
C++ Ошибка компиляции Runtime error
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.10.2011, 19:25     Почему runtime error #2
Цитата Сообщение от ITZver Посмотреть сообщение
C++
1
2
3
4
5
for (int i = 1; i <= n; i++ )
* * {
* * * *for (int j = 1; j <= m; j++)
* * * * fin>>a[i][j];
* * }
А если n = 20? По условию это возможно.
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
21.10.2011, 19:30     Почему runtime error #3
ITZver, soon вам правильно намекает на выход за пределы массива. Вы индексы массива начинаете с 1 и заканчиваете n соответственно. А в С/С++ индексы массива из n элементов - это 0..n-1 включительно. Поэтому у вас и выход за пределы массива: в массиве int a[20][20]; попросту нет элемента a[20][20], последний элемент a[19][19], а первый a[0][0].
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
21.10.2011, 19:32  [ТС]     Почему runtime error #4
aeshes, Да все, проблема решена. В другой раз буду внимательнее читать задания
Yandex
Объявления
21.10.2011, 19:32     Почему runtime error
Ответ Создать тему
Опции темы

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