我用c语言写了一个关于商人过河的问题

#include "stdio.h"
#include "string.h"
#include "conio.h"
FILE *fp;/*设立文件指针,以便将它用于其他函数中*/
struct a{
long m,s;
struct a *next;
};/*数组类型a:记录各种情况下船上的商人和仆人数,m:代表商人数

s:代表仆人数*/
struct a *jj,head;/*head为头指针的链表单元(船上的人数的各种情况的链表)*/
int n,total=0,js=0;/*total表示船上各种情况总数*/
struct aim {
long m1,s1,m2,s2;
int n;
struct aim *back,*next;};/*用于建立双向的指针链表,记入符合的情况,m1,s1表示要过岸的商人数和仆人数;m2,s2表示过岸了的商人数和仆人数,n表示来回的次数*/
int k1,k2;
void freeit(struct aim *p){
struct aim *p1=p;                                           p1=p->back;
free(p);
if(p1!=NULL)
p1->next=NULL;
return;

}/*释放该单元格,并将其上的单元格的next指针还原*/

 


int determ(struct aim *p)
{ struct aim *p1=p;
if(p->s1>k2)return -1;/*仆人数不能超过总仆人

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值