資源簡介
數據結構,農夫過河。詳細講述過河
#include
//0代表在河的這邊;1代表在河的對岸
struct Condition{
int farmer;
int wolf;
int sheep;
int cabbage;
};
struct Condition conditions[100];//結構體條件數組
char * action [100];
void takeWolfOver(int i)
//把狼來過去
{
action[i]="把狼過去.---->對岸";
conditions[i+1].wolf=1;
conditions[i+1].sheep=conditions[i].sheep;
conditions[i+1].cabbage=conditions[i].cabbage;
}
void takeWolfBack(int i)/*把狼帶回來*/
{
action[i]="帶狼回來.本岸對岸";
conditions[i+1].wolf=conditions[i].wolf;
conditions[i+1].sheep=1;
conditions[i+1].cabbage=conditions[i].cabbage;
}
void takeSheepBack(int i)/*把羊帶回來*/
{
action[i]="帶羊回來.本岸對岸";
conditions[i+1].wolf=conditions[i].wolf;
conditions[i+1].sheep=conditions[i].sheep;
conditions[i+1].cabbage=1;
}
void takeCabbageBack(int i)/*把菜帶回來*/
{
action[i]="帶菜回來.本岸對岸";
conditions[i+1].wolf=conditions[i].wolf;
conditions[i+1].sheep=conditions[i].sheep;
conditions[i+1].cabbage=conditions[i].cabbage;/*全不動*/
}
void getBackBarely(int i)/*返回時的情況*/
{
action[i]="空手回來.本岸<---(barely)";
conditions[i+1].wolf=conditions[i].wolf;
conditions[i+1].sheep=conditions[i].sheep;
conditions[i+1].cabbage=conditions[i].cabbage;
}
void showSolution(int i)/*顯示解決方法*/
{
int c;
printf("\n");
printf("%s\n","解決辦法:");
for(c=0;c<i;c++)
{
printf("step%d:%s\n",c+1,action[c
代碼片段和文件信息
#include
//0代表在河的這邊;1代表在河的對岸
struct?Condition{
?int?farmer;
?int?wolf;
?int?sheep;
?int?cabbage;
};
struct?Condition?conditions[100];//結構體條件數組
char?*?action?[100];
void?takeWolfOver(int?i)
//把狼來過去
{
????action[i]=“把狼過去.---->對岸“;
????conditions[i+1].wolf=1;
????conditions[i+1].sheep=conditions[i].sheep;
????conditions[i+1].cabbage=conditions[i].cabbage;
}
void?takeWolfBack(int?i)/*把狼帶回來*/
{
????action[i]=“帶狼回來.本岸<---(wolf)“;
????conditions[i+1].wolf=0;
????conditions[i+1].sheep=conditions[i].sheep;
????conditions[i+1].cabbage=conditions[i].cabbage;
????}
void?takeSheepOver(int?i)/*把羊帶過去*/
{
????action[i]=“帶羊過去.(sheep)--->對岸“;
????conditions[i+1].wolf=conditions[i].wolf;
????conditions[i+1].sheep=1;
????conditions[i+1].cabbage=conditions[i].cabbage;
}
void?takeSheepBack(int?i)/*把羊帶回來*/
{
????action[i]=“帶羊回來.本岸<---(sheep)“;
????conditions[i+1].wolf=conditions[i].wolf;
????conditions[i+1].sheep=0;
????conditions[i+1].cabbage=conditions[i].cabbage;
}
void?takeCabbageOver(int?i)/*把菜帶過去*/
{
????action[i]=“帶菜過去.(cabbage)--->對岸“;
????conditions[i+1].wolf=conditions[i].wolf;
????conditions[i+1].sheep=conditions[i].sheep;
????conditions[i+1].cabbage=1;
}
void?takeCabbageBack(int?i)/*把菜帶回來*/
{
????action[i]=“帶菜回來.本岸<---(cabbage)“;
????conditions[i+1].wolf=conditions[i].wolf;
????conditions[i+1].sheep=conditions[i].sheep;
????conditions[i+1].cabbage=0;
}
void?getOverBarely(int?i)/*過河時的情況*/
{
????action[i]=“空手過去.(barely)--->對岸“;
????conditions[i+1].wolf=conditions[i].wolf;
????conditions[i+1].sheep=conditions[i].sheep;
????conditions[i+1].cabbage=conditions[i].cabbage;/*全不動*/
}
void?getBackBarely(int?i)/*返回時的情況*/
{
????action[i]=“空手回來.本岸<---(barely)“;
????conditions[i+1].wolf=conditions[i].wolf;
????conditions[i+1].sheep=conditions[i].sheep;
????conditions[i+1].cabbage=conditions[i].cabbage;
}
void?showSolution(int?i)/*顯示解決方法*/
{
????int?c;
????printf(“\n“);
????printf(“%s\n““解決辦法:“);
????for(c=0;c????{
????????printf(“step%d
- 上一篇:天津工業大學C++語言期末考試題及答案
- 下一篇:OpenCV解決PnP問題
評論
共有 條評論