Этот вопрос является общим, но я приведу конкретный пример.Как лучше всего следовать функции, чтобы понять, что она делает?
Общая проблема, которая должна быть решена, объясняется here. Описание длинное, поэтому я не буду вырезать и вставлять, но основная идея заключается в строках ввода S и T (как они вызывают в приведенном ниже коде), найдите минимальное количество изменений, которые необходимо выполнить для S, чтобы создать T. Одно изменение может быть:
- Вставьте одну букву в любой конец строки.
- Удалить одну букву с любого конца строки.
- Измените одну букву на другую.
Ниже представлено решение, которое я пытаюсь отслеживать. То, что я ищу, - это советы о том, как наилучшим образом решить проблему. Каковы некоторые методы, которые я могу использовать для чтения и понимания кода (давайте отбросим шаг через отладчик).
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
char S[2010];
char T[2010];
int lens,lent;
int main()
{
int i,j,ma,p;
while(scanf("%s%s",S,T)!=EOF)
{
lens=strlen(S);
lent=strlen(T);
ma=0;p=0;
for(i=0;i<lens;i++)
{
p=0;
for(j=0;j<lent;j++)
{
if(i+j>=lens)
break;
if(S[i+j]==T[j]){p++;}
}
if(ma<p)
ma=p;
if(ma==lent)
break;
}
for(i=0;i<lent;i++)
{
p=0;
for(j=0;j<lens;j++)
{
if(i+j>=lent)
break;
if(T[i+j]==S[j]){p++;}
}
if(ma<p)
ma=p;
if(ma==lent)
break;
}
printf("%d\n",lent-ma);
}
return 0;
}
Тот, кто написал эту функцию, должен быть уволен и никогда не разрешен рядом с языком программирования. Выбросьте его и начните заново, и используйте реальные имена переменных и комментарии. Нет простого способа понять, что это делает, как это делается, или даже * почему это было написано *. Проголосовал за то, чтобы закрыть, поскольку вы отклонили из рук единственное реальное решение **, перейдите через dubugger **. – meagar
Говоря «давайте откажемся от отладчика», этот вопрос походит на то, чтобы просить кого-то прыгать с парашютом без парашюта ... особенно с этой программой. (См. Комментарий майгара выше) – Foggzie
@meagar, вы должны суровы. этот код, безусловно, не самый лучший, но недавно я нашел два источника в области обработки jpeg с большинством уродливых кодов. Оба автора в настоящее время занимают стул в области ИТ –