Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 07:32   #1
Arch0000
 
Регистрация: 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.
Arch0000 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найдите ошибку в коде 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