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

Выяснить можно ли с поля (k,l) одним ходом ферьзя попасть на поле(m,n). Если нет, то выяснить, как это можно сделать за два хода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Корректность моего кода http://www.cyberforum.ru/cpp-beginners/thread557478.html
В общем, написал я код... Но поскольку опытности не хватает, то хотел спросить корректен ли он? Н-р, я использовал глобальный указатель, что в принципе(по моей информации) не есть good)... Оцените плиз мою работу... //--------------------------------------------------------------------------- #include <iostream> #include <vcl.h> #pragma hdrstop double *p_arr = new double;...
C++ Вычислить y= k14− 18 k для 6 значений k, вводимых с клавиатуры. Результат вычислений записать в массив. Полученный массив отсортировать по возрастанию #include<iostream> #include<math.h> #include<iomanip> using namespace std; double const n=20; int vvod( double y, int n) { int k; for(int i=0;i<n;i++) { http://www.cyberforum.ru/cpp-beginners/thread557475.html
C++ Найти какое нибудь слова оканчивающееся на d(если таких слов нет то сообщить об этом )
Даны натуральное число n , действительные числа a1,....,an . В последовательности a1,...,an считая при этом, что количество символов в каждом слове не превосходит 15. Найти какое нибудь слова оканчивающееся на d(если таких слов нет то сообщить об этом )
C++ Visual Ultimate - проект устарел
Вот решил я как то освоить С++ , посмотрел туториалы , соответственно скачал visual для этого Там создаю проект потом файл С++ пишу там самую простую программу "hello world" #include <iostream> using namespace std; void main() { cout << "Hello!\n"; system("pause");
C++ Помогите найти ошибку в программе! (С++) http://www.cyberforum.ru/cpp-beginners/thread557463.html
Найти строку с минимальной суммой элементов #include<iostream> using namespace std; #include "Rus.h" int fuction (int,int,int); int main (void) { int **a,m,n,i,j,num; cout<<Rus("Введите количество строк")<<"\t";
C++ 1)Ввести строку А с клавиатуры состоящую 1)Ввести строку А с клавиатуры состоящую из заглавных русских букв. Определить каких букв больше: гласных или согласных и на сколько. Вывести все слова заканчивающиеся на букву "а". 2)Удалить все слова заканчивающиеся на "ия" из введенной строки. ПОЖАЛУЙСТА!!! подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.04.2012, 05:44     Выяснить можно ли с поля (k,l) одним ходом ферьзя попасть на поле(m,n). Если нет, то выяснить, как это можно сделать за два хода
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
#include <iostream>
using namespace std;
int k,l,m,n;
struct tt{
    int x,y,t;
};
tt Q[65], a[8][8];
int main()
{
    cin>>k>>l>>m>>n;
    int i,j, i_st=0,i_end=1;
    for(i=0; i<8; i++)
        for(j=0; j<8; j++)
            a[i][j].t=0;
    Q[0].x=k-1; Q[0].y=l-1; 
    while(i_st<i_end)
    {
        for(i=1; i+Q[i_st].x<8 && i+Q[i_st].y<8; i++)
            if(a[Q[i_st].x+i][Q[i_st].y+i].t==0)
            {
                a[Q[i_st].x+i][Q[i_st].y+i].t=a[Q[i_st].x][Q[i_st].y].t+1;
                a[Q[i_st].x+i][Q[i_st].y+i].x=Q[i_st].x;
                a[Q[i_st].x+i][Q[i_st].y+i].y=Q[i_st].y;
                Q[i_end].x=Q[i_st].x+i; Q[i_end++].y=Q[i_st].y+i; 
            }
        for(i=1; Q[i_st].x-i>=0 && i+Q[i_st].y<8; i++)
            if(a[Q[i_st].x-i][Q[i_st].y+i].t==0)
            {
                a[Q[i_st].x-i][Q[i_st].y+i].t=a[Q[i_st].x][Q[i_st].y].t+1;
                a[Q[i_st].x-i][Q[i_st].y+i].x=Q[i_st].x;
                a[Q[i_st].x-i][Q[i_st].y+i].y=Q[i_st].y;
                Q[i_end].x=Q[i_st].x-i; Q[i_end++].y=Q[i_st].y+i; 
            }
        for(i=1; i+Q[i_st].x<8 && Q[i_st].y-i>=0; i++)
            if(a[Q[i_st].x+i][Q[i_st].y-i].t==0)
            {
                a[Q[i_st].x+i][Q[i_st].y-i].t=a[Q[i_st].x][Q[i_st].y].t+1;
                a[Q[i_st].x+i][Q[i_st].y-i].x=Q[i_st].x;
                a[Q[i_st].x+i][Q[i_st].y-i].y=Q[i_st].y;
                Q[i_end].x=Q[i_st].x+i; Q[i_end++].y=Q[i_st].y-i; 
            }
        for(i=1; Q[i_st].x-i>=0 && Q[i_st].y-i>=0; i++)
            if(a[Q[i_st].x-i][Q[i_st].y-i].t==0)
            {
                a[Q[i_st].x-i][Q[i_st].y-i].t=a[Q[i_st].x][Q[i_st].y].t+1;
                a[Q[i_st].x-i][Q[i_st].y-i].x=Q[i_st].x;
                a[Q[i_st].x-i][Q[i_st].y-i].y=Q[i_st].y;
                Q[i_end].x=Q[i_st].x-i; Q[i_end++].y=Q[i_st].y-i; 
            }
        i_st++;
    }
    if(a[m-1][n-1].t==1)
        cout<<"1 step"<<endl;
    else
        cout<<"2 step"<<endl<<a[m-1][n-1].x+1<<" "<<a[m-1][n-1].y+1<<endl;
    return 0;
}
 
Текущее время: 11:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru