/* 二题: */ / #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; }