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

Не могу понять из-за чего ошибка - C++

Войти
Регистрация
Восстановить пароль
 
morouz
Сообщений: n/a
10.02.2013, 12:56     Не могу понять из-за чего ошибка #1
Я новичёк,школьник ещё,перешёл с паскаля.
Среда Visual C++ 2010.
Вот код. Одна из базовых задач,нахождение кратчайшего пути в лабиринте.
Выдаёт ошибку о выходе за пределы массива "a". Я обнёс его по краям такими значениями,чтобы туда в ходе программы не заходило,+поставил дополнительные if. Всё считает,успевает вывести,и в самом конце,после return 0 выскакивает эта ошибка(прогонял пошагово через F10).Переписывал с нуля на паскале,ошибки не выбивало.Не знаю что делать,подскажите пожалуйста.


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
#include "stdafx.h"
#include "stdio.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    FILE *f;
 int m,n,xk,yk,xn,yn,x,y;
 int a[100][100],step[2][10000];
 f=fopen("input.txt","r+");
 fscanf(f,"%d %d\n",&m,&n);
 fscanf(f,"%d %d\n",&xn,&yn);
 fscanf(f,"%d %d\n",&xk,&yk);
 for (int i=1; i<=m; i++)
 { for (int j=1; j<=n; j++)
 {fscanf(f,"%d",&a[i][j]);}
 fscanf(f,"\n");}
 int c,z;
 c=0; z=1;
 step[1][1]=xn;
 step[2][1]=yn;
 for (int i=0; i<=m+1; i++)
 { a[i][0]=-1; a[i][n+1]=-1; 
 }
 for (int i=0; i<=n+1; i++)
 { a[0][i]=-1; a[m+1][i]=-1;
 }
  for (int i=0; i<=m+1; i++)
 { for (int j=0; j<=n+1; j++)
  {printf("%d",a[i][j]);}
  printf("\n");}
  fclose(f);
  
 do
 {c++;
  x=step[1][c];
  y=step[2][c];
  if (x<5) { if (a[x+1][y]==0) {z++; step[1][z]=x+1; step[2][z]=y; a[x+1][y]=a[x][y]+1;}}
  if (x>1) { if (a[x-1][y]==0) {z++; step[1][z]=x-1; step[2][z]=y; a[x+1][y]=a[x][y]+1;}}
  if (y<5) { if (a[x][y+1]==0) {z++; step[1][z]=x; step[2][z]=y+1; a[x][y+1]=a[x][y]+1;}}
  if (y>1) { if (a[x][y-1]==0) {z++; step[1][z]=x; step[2][z]=y-1; a[x][y-1]=a[x][y]+1;}}
 }
 while ((c!=z));
 printf("%d",a[xk][yk]);
    
 
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2013, 12:56     Не могу понять из-за чего ошибка
Посмотрите здесь:

Не могу понять ошибка ли это? C++
ошибка не могу понять почему ! C++
не могу понять с чего начать C++
Не могу понять где ошибка C++
C++ Не могу понять в чём ошибка
C++ Не могу понять чего не работает
C++ Не могу понять из-за чего это происходит
C++ Не могу понять где ошибка!
C++ Не могу понять чего выдает всегда 0
C++ Не могу понять где ошибка
C++ Не могу понять где ошибка
C++ Не могу понять для чего третья переменная в параметрах функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
10.02.2013, 13:24     Не могу понять из-за чего ошибка #2
morouz,
первая ошибка - нет констанкт
вторая ошибка - пора переходить на с++ stl
morouz
Сообщений: n/a
10.02.2013, 14:23     Не могу понять из-за чего ошибка #3
Цитата Сообщение от Van111 Посмотреть сообщение
morouz,
первая ошибка - нет констанкт
вторая ошибка - пора переходить на с++ stl
Попробовал использовать константы,результат не изменился.

Добавлено через 52 минуты
Всё,исправил.
Yandex
Объявления
10.02.2013, 14:23     Не могу понять из-за чего ошибка
Ответ Создать тему
Опции темы

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