Member 12566145 Ответов: 1

Почему мой код C++ терпит крах


мой код терпит крах

Я уже использовал отладчик, но не могу догадаться, в чем их ошибка

Что я уже пробовал:

#include<iostream>
#include <string>
using namespace std;
int test;
int main()
{
 cin >> test;
 string name;
 string three;

for(int i=0;i<test;i++)
{getline(cin,name);

int j=1;
for(int k=0;k<name.length()-2;k++)
{
    three=name.substr(k,3);//IT include i i+1 i+2
    if(three=="101" || three=="010")
      {
        break;
      }
     else
        ++j;
 }
 if (j<name.length()-2)
 {
    cout << "good" << endl;
 }
 else
    cout << "bad" << endl;
 }
}

CPallini

Что такое "тест"?

Philippe Mori

Поведение программы зависит от данных. Поэтому вы должны показать нам минимальные образцы данных, которые вызывают сбой.

1 Ответов

Рейтинг:
12

OriginalGriff

Используйте отладчик.
Перестаньте "гадать" и ищите доказательства.
Поставьте точку останова в начале функции, запустите приложение в отладчике и шагайте через каждую строку по очереди. Используйте отладчик, чтобы посмотреть, что находится в какой переменной.
Прежде чем выполнять каждую строку, сначала определите, что вы ожидаете, затем выполните строку и посмотрите, что произошло. Это было то, что вы ожидали? Если да, то двигайтесь дальше. Если нет ... а почему бы и нет? Что изменилось? Что случилось, что вы не ожидали, или не произошло, что ты сделал?

Отладка-это навык: вы развиваете его, ТОЛЬКО используя. И гораздо лучше разработать его на таком тривиальном примере кода, как этот, чем на полном проекте в 100 000 строк!
Попробуйте: посмотрите, какую информацию вы можете узнать!