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

Почему не входит в цикл? - C++

Восстановить пароль Регистрация
 
n0n4m3r
23 / 23 / 6
Регистрация: 12.10.2013
Сообщений: 183
21.05.2014, 13:52     Почему не входит в цикл? #1
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
64
65
#include <iostream>
#include <string>
 
 
int main(){
  std::string s, t, path;
  short int sp=0, tp=0, tf=0, sf=0;
  std::getline(std::cin, s);
  std::getline(std::cin, t);
  
  while(s[0] != t[0]){
    if(s[0] > t[0]){
      s[0]-=1;
      ++sp;
      sf=1;
    } else{
      s[0]+=1;
      ++sp;
    }
  }
  
  while(s[1] != t[1]){
    if(s[1] > t[1]){
      s[1]-=1;
      ++tp;
      tf=1;
    } else{
      s[1]+=1;
      ++tp;
    }
  }
  
  if(sp > tp)
    std::cout << sp << std::endl;
  else
    std::cout << tp << std::endl;
 
  while(sp != 0 && tp != 0){ //Не входит в этот цикл.
    
  std::cout << "SP: " << sp << std::endl;
  std::cout << "TP: " << tp << std::endl;
  
  
      if(sf == 1 & sp != 0){
    --sp;
    std::cout << "L";
      }
      else if(sp != 0){
    --sp;
    std::cout << "R";
      }
      if(tf == 1 && tp != 0){
    --tp;
    std::cout << "D";
      }
      else if(tp != 0){
    --tp;
    std::cout << "U";
      }
    std::cout << std::endl;
  }
  
  
 return 0; 
}
Суть программы - по шахматной доске пройти королем с точки А, в точку Б.
Например: А1 -> B3,
Вывод
2 (кол-во ходов)
RU
U
//Путь по доске
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 13:52     Почему не входит в цикл?
Посмотрите здесь:

C++ Почему цикл не заканчивается???
C++ Цикл почему-то не заканчивается.
C++ Почему не работает цикл for
Написать рекурсивную функцию, проверяющую, входит или не входит элемент Е в не пустой список L, состоящий из вещественных чисел C++
C++ Почему не выполняется цикл?
Почему 1 входит в промежуток? C++
Программа входит в бесконечный цикл при изменении двумерного массива C++
C++ не понимаю почему цикл не заканчивается

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Prgrm101
3 / 3 / 3
Регистрация: 08.04.2014
Сообщений: 20
21.05.2014, 14:12     Почему не входит в цикл? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
while(sp != 0 && tp != 0) - у меня входит, но путь выводит не весь. Чтобы выводило полный путь поменяй условие в цикле на (sp != 0 || tp != 0)
n0n4m3r
23 / 23 / 6
Регистрация: 12.10.2013
Сообщений: 183
21.05.2014, 14:24  [ТС]     Почему не входит в цикл? #3
Цитата Сообщение от Prgrm101 Посмотреть сообщение
Чтобы выводило полный путь поменяй условие в цикле на (sp != 0 || tp != 0)
Спасибо, заработало..
Yandex
Объявления
21.05.2014, 14:24     Почему не входит в цикл?
Ответ Создать тему
Опции темы

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