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

Задача про минимальный путь в лабиринте. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Заменить каждую букву и знак пунктуации тем, который находится непосредственно слева от него на клавиатуре http://www.cyberforum.ru/cpp-beginners/thread391767.html
С++ Обычная ошибка при наборе состоит в том что вы помещаете руки на клавиатуре на 1 ряд правее верной позиции. Тогда "Q" будет печататься как "W", "J" печататься как "K", и т.д. Ваша задача состоит в расшифровке сообщения набранного таким образом. ВХОДНЫЕ ДАННЫЕ. входные данные состоят из нескольких строк текста. Каждая строка может содержать цифры, пробелы, прописные буквы на клавиатуре...
C++ заполнение динамического двумерного массива Дано число n. Создайте массив int A и заполните его по спирали начиная с числа 0 в центральной клетке A. Спираль выходит вверх, далее закручивается против часовой стрелки. Выведите массив на экран, отводя на вывод каждого числа ровно 3 символа. массив динамический. ссылаясь на инет источники создал примерно начало программы, но подскажите, на верном пути или нет? и еще, объясните что такое... http://www.cyberforum.ru/cpp-beginners/thread391764.html
хитрая константа не даёт создать обычный массив C++
Почему я не могу создать обычный массив, указав константу в качестве количества элементов? int n=10; const int N(n); //N вроде как константа //действительно получает значение 10 int A; //error C2057: требуется константное выражение //error C2466: невозможно выделить память
C++ Массивы и натуральные числа
Помогите пожалуйста написать программу. Ввести натуральное число n. а) Записать в массив только те делители числа n, которые являются палиндромами. б) Вывести все делители числа n, у которых последняя цифра наименьшая. Заранее спасибо.
C++ Класс "Список", функция добавления элемента в конец http://www.cyberforum.ru/cpp-beginners/thread391731.html
#include <iostream> #include <cstring> using namespace std; struct myElem { char *line; myElem *next; myElem(const char* str)
C++ Вывести все целые числа, расположенные между заданными Даны два целых числа A и B (A < B). Вывести все целые числа, расположенные между данными числами (включая сами эти числа), в порядке их убывания. Использовать цикл for. #include <stdio.h> #include <conio.h> void main() { int a,b,i; clrscr(); printf("vvedite a: "); scanf("%i",&a); подробнее

Показать сообщение отдельно
vikichocolate
 Аватар для vikichocolate
25 / 14 / 1
Регистрация: 11.11.2011
Сообщений: 94
20.12.2011, 01:13  [ТС]     Задача про минимальный путь в лабиринте.
A2 Разработать программу, которая ищет минимальный путь в лабиринте. Лабиринт представляет собой матрицу 10х10. Клетки, по которым можно передвигаться, заполнены единицами. Клетки, через которые проходить нельзя, заполнены нулями. Необходимо найти кратчайший путь из верхней левой в правую нижнюю клетку.




Учитель сказал, что это неправильное решение...Хотя вроди норм работает.
Гляньте, пжл!!!!!Горит очень сильно!!!!Умоляю!!!!!!Подправьте код!!!!!!




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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include<iostream>
#include<fstream>
using namespace std;
 
void main()
{
    int x, y ;  // размеры матрицы
    ifstream in;
    in.open("input.txt");
    ofstream  out;
    out.open("output.txt"); 
    in>>x>>y;
    int **b=new int*[x];
    for(int i=0; i<x; i++)   
        b[i] = new int[y];
    int **a=new int*[x];
    for (int i=0;i<x;i++)
    {
        a[i]=new int[y];
        for (int j=0;j<y;j++)
            in>>a[i][j];
    } 
    in.close();
    if(a[0][0]==0 && a[x-1][y-1]==0)
    {
        out<<"wrong matrix!"<<endl; 
    }
 
    for(int i=0; i<x; i++)
    {
        for(int j=0; j<y; j++)
        {
            b[i][j]=0;
        }
    }
    for(int i=0; i<x; i++)
    {
        for(int j=0; j<y; j++)
        {
            if(a[i][j]==0)
                a[i][j]=2;
            else
                a[i][j]=1;
        }
    }
 
 
 
    int k=1;
    //b[0][0]=k;
    for(int i=0; i<x; i++)
    {
        for(int j=0; j<y; j++)
        {
            if (i!=0 && j!=0) {
                k=a[i][j]+min(b[i-1][j], b[i][j-1]);
                b[i][j]=k+1;
                k++; 
            } 
        }
    }
    out<<b[x-1][y-1]; 
}
Добавлено через 3 часа 21 минуту
Помогите, ради всего святого!!!!!!!!!!!!!!!!!!!!
 
Текущее время: 12:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru