设计一函数,求整数区间[a,b]和[c,d]的交集

/* 二题: */  /   #include "stdio.h" #define     BOOL   int   #define     TRUE   1   #define     FALSE   0  

BOOL   jiba(int   *p1,   int   *p2,   int**pt)   {    if   ((p1   ==   NULL)   ||   (p2   ==   NULL)   ||     (p1[0]   >   p1[1])   ||   (p2[0]   >   p2[1]))    {     printf("输入有误/n");     return   FALSE;    }        if   (p2[0]   <=   p1[0])    {     if   (p2[1]   <   p1[0])      return   FALSE;     else     {      *pt   =   new   int[2];      (*pt)[0]   =   p1[0];      (*pt)[1]   =   (p2[1]<=p1[1]   ?   p2[1]:p1[1]);      return   TRUE;     }    }    else    {     if   (p2[0]   >   p1[1])      return   FALSE;     else     {      *pt   =   new   int[2];      (*pt)[0]   =   (p1[0]   >=   p2[0]   ?   p1[0]:p2[0]);      (*pt)[1]   =   p1[1];      return   TRUE;     }    }    return   TRUE;   }  

//test!   int   rt[2]   ={1,10};   int   rt1[2]={0,9};   int   main()   {    int   *p   =   NULL;    BOOL   b   =   jiba(rt,rt1,&p);    if   (b)    {     printf("[%d,%d]与[%d,%d]的交集为[%d,%d]/n",rt[0],rt[1],rt1[0],rt1[1],   p[0],p[1]);     delete   p;    }    else    {     printf("[%d,%d]与[%d,%d]的交集为空/n",rt[0],rt[1],rt1[0],rt1[1]);    }    getchar();    return   0;   }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值