#include <stdio.h>
using namespace std;
int main(){
void gobox(int a,int b);
void getbox();
void findbanana(int a,int b);
void getbanana();
int monkey,banana,box;
printf("请依次输入猴子,香蕉,箱子 的位置\n");
printf("猴子的位置:");
scanf("%d",&monkey);
printf("香蕉的位置:");
scanf("%d",&banana);
printf("箱子的位置:");
scanf("%d",&box);
printf("-----------------------------------\n");
if(monkey!=box){ //猴子 箱子不在一个位置
printf("猴子够不到香蕉,要先去搬箱子:");
gobox(monkey,box);
getbox();
if(box!=banana){ //箱子和香蕉不在一个位置
printf("猴子需要搬着箱子去找到香蕉:");
findbanana(banana,box);
getbanana();
}else{//香蕉和箱子在一个位置
printf("香蕉就在箱子的上面\n");
getbanana();
}
}else{//猴子和箱子在一个位置,直接执行拿箱子
printf("箱子就在猴子旁边,猴子拿到了箱子");
getbox();
if(box!=banana){ //箱子 和香蕉不在一个位置
printf("猴子需要搬着箱子去找到香蕉:");
findbanana(banana,box);
getbanana();
}else{ //香蕉和箱子在一个位置
printf("香蕉就在箱子的上面\n");
getbanana();
}
}
}
void gobox(int a,int b){
int flag;
flag = b - a;
if(flag>0){ //如果b在a右边
printf("Run(monkey,box)\n");//a是猴子,b是箱子
printf("猴子需要向右移动%d步拿到箱子\n",flag);
}else{//b在a左边
printf("Run(monkey,box)\n");//箱子在猴子左边
printf("猴子需要向左移动%d步拿到箱子\n",flag);
}
}
void findbanana(int a,int b){
int flag;
flag=b-a;//香蕉在猴子右边
if(flag>0){
printf("Run(monkey,banana)\n");
printf("猴子需要向左搬着箱子移动%d步找到香蕉\n",flag);
}else{//香蕉在猴子左边
printf("Run(monkey,banana)\n");
printf("猴子需要向右搬着箱子移动%d步找到香蕉\n",flag);
}
}
void getbox(){
printf("猴子拿到了箱子:");
printf("Getbox(monkey,box)\n");
}
void getbanana(){
printf("猴子踩在箱子上拿到了香蕉:");
printf("Getbanana(monkey,banana)\n");
}
讲话稿范德萨
最新推荐文章于 2024-09-13 16:27:15 发布