設計一函數,求整數區間[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;   }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章