C语言中,~如何用表示一个取值范围里除去一个取值范围?已知,x 的取值范围1------表达式1-------比如 1

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 11:46:53
C语言中,~如何用表示一个取值范围里除去一个取值范围?已知,x 的取值范围1------表达式1-------比如 1

C语言中,~如何用表示一个取值范围里除去一个取值范围?已知,x 的取值范围1------表达式1-------比如 1
C语言中,~如何用表示一个取值范围里除去一个取值范围?
已知,x 的取值范围1------表达式1-------比如 1

C语言中,~如何用表示一个取值范围里除去一个取值范围?已知,x 的取值范围1------表达式1-------比如 1
#include <stdio.h>
void getrange(int a1,int b1,int a2,int b2)/*a1,b1分别为范围1的下上限,a2,b2分别为范围2的下上限*/
{
int lr,hr,lt,ht;
lr=hr=lt=ht=-1;
if(a1<=a2)
{
if(b1<=a2)
{
lr=a1;
hr=b1;
}
else if(b1>a2 && b1<=b2)
{
lr=a1;
hr=a2;
}
else 
{
lr=a1;
hr=a2;
lt=b2;
ht=b1;
}
}
else if(a1>a2 && a1<b2)
{
if(b1>b2)
{
lr=b2;
hr=b1;
}
}
else
{
lr=a1;
hr=b1;
}
if(lr!=-1)
printf("范围1减去范围2之后的范围是:%d<x<%d\n",lr,hr);
else 
printf("范围1减去范围2之后为空\n");

if(lt!=-1)
printf("范围1减去范围2之后的范围二是:%d<x<%d\n",lt,ht);
}
void main()
{
int a1,b1,a2,b2;
printf("当输入的范围1的上下限都为0的时候程序退出\n");
printf("分别输入范围1的上下限:");
scanf("%d%d",&a1,&b1);
printf("分别输入范围2的上下限:");
scanf("%d%d",&a2,&b2);
while(1)
{
if(a1==0 && b1==0)
break;
getrange(a1,b1,a2,b2);
printf("分别输入范围1的上下限:");
scanf("%d%d",&a1,&b1);
printf("分别输入范围2的上下限:");
scanf("%d%d",&b2,&b2);
}
}