|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
29.05.2010, 07:32 | #1 |
Регистрация: 15.02.2009
Сообщений: 6
|
Найдите ошибку в коде
Задача - из данных костяшек домино составить максимально длинную цепочку. Так вот, программу я, вроде, написал, и теоретически она должна работать. Но работает неправильно. В общем, помогите найти ошибку в коде:
//--------------------------------------------------------------------------- #include <vcl.h> #include <iostream.h> int n,i,maxi; int a[10],b[10],rea[10],rez[10]; //a и b - массивы для хранения левой и правой части костяшки. rea и reb - дополнительные массивы bool busy[10]; //busy - массив для хранения текущего состояния костяшки //--------------------------------------------------------------------------- int yes(an,bn,cn){ if (an==cn){ return 1; } if (bn==cn){ return 2; } if ((bn!=cn)&&(an!=cn)){ return 0; } } int reverse(int s){ int l; l=a[s]; a[s]=b[s]; b[s]=l; return 0; } int built(j,k){ rea[k]=a[j]; rez[k]=b[j]; for (int v=0;v<=3;v++){ cout<<v<<yes(a[v],b[v],rez[k])<<busy[v]<<endl; if (busy[v]=false){ if (yes(a[v],b[v],rez[k])==1){ cout<<"Кладу"<<endl; busy[v]=true; built(v,k+1); } if (yes(a[v],b[v],rez[k])==2) { cout<<"Кручу"<<endl; reverse(v); built(v,k+1); } cout<<"Не подходит"<<endl; busy[v]=false; if (k>maxi) maxi=k; } } return 0; } int main(){ SetConsoleOutputCP(1251); i=0; for (i=0;i<=3;i++){ cout<<"Введите левую сторону"<<endl; do{ cin>>a[i]; if ((a[i]<0)||(a[i]>6)) cout<<"Неправильно! Повторите ввод"<<endl; }while ((a[i]<0)||(a[i]>6)); cout<<"Введите правую сторону"<<endl; do{ cin>>b[i]; if ((b[i]<0)||(b[i]>6)) cout<<"Неправильно! Повторите ввод"<<endl; }while ((b[i]<0)||(b[i]>6)); } for (i=0;i<=3;i++){ busy[i]=true; built(i,0); reverse(i); busy[i]=true; built(i,0); busy[i]=false; } cout<<maxi<<endl; cin>>maxi; } //--------------------------------------------------------------------------- Последний раз редактировалось Arch0000; 29.05.2010 в 07:37. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
найдите ошибку в коде | TopoRRR | Помощь студентам | 6 | 15.12.2009 10:30 |
Найдите ошибку | *natali* | Помощь студентам | 3 | 08.11.2009 17:30 |
Найдите ошибку | MaJlbBuHa | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 20.10.2009 23:26 |
найдите ошибку в коде | pony | Помощь студентам | 1 | 14.09.2009 10:03 |
найдите ошибку | Сова | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 11.02.2009 18:46 |