c如何设计一函数,求整数区间[a,b]和[c,d]的交集
答案:1 悬赏:30
解决时间 2021-01-08 03:36
- 提问者网友:沦陷
- 2021-01-07 14:13
c如何设计一函数,求整数区间[a,b]和[c,d]的交集
最佳答案
- 二级知识专家网友:旧脸谱
- 2021-01-07 14:32
// 闭包区间结构体
struct ClosureSection
{
ClosureSection(){nLowBound = 0;nUpBound = -1;} // 默认构造使上限小于下限
int nLowBound;
int nUpBound;
}
// 查找交集的函数,传入闭包区间1,2,引用返回结果
// 函数内部是判断完立即处理返回区间的范围,其实可以先创建一个局部变量用来记录
// 区间下限所处的实参,再在代码内统一处理
bool FindIntersection(ClosureSection s1, ClosureSection s2, ClosureSection &sRet)
{
// 判断最小值是否s2的下限
// 不需要建立这个局部变量,这样纯粹是为了清晰
bool bMinIns2 = s1.nLowBound >= s2.nLowBound && s1.nLowBound <= s2.nUpBound;
if(bMinIns2)
{
sRet.nLowBound = s1.nLowBound;
// 取s2和s1的较小上限
sRet.nUpBound = min(s1.nUpBound, s2.nUpBound);
return true;
}
else
{
bool bMinIns1 = s2.nLowBound >= s1.nLowBound && s2.nLowBound <= s1.nUpBound;
if(bMinIns1)
{
sRet.nLowBound = s2.nLowBound;
sRet.nUpBound = min(s1.nUpBound, s2.nUpBound);
return true;
}
}
return false;
}追问老哥,能不能用c写,c++没学过追答你用c写也是一样的,你把那个ClosureSection直接拆成两个参数放进去。
比如ClosureSection s1拆成int nS1LowBound, int nS1UpBound,函数内的s1.nUpBound直接改为nS1UpBound就行。
印象中C应该也有结构体吧,不写这个东西参数有点多。
struct ClosureSection
{
ClosureSection(){nLowBound = 0;nUpBound = -1;} // 默认构造使上限小于下限
int nLowBound;
int nUpBound;
}
// 查找交集的函数,传入闭包区间1,2,引用返回结果
// 函数内部是判断完立即处理返回区间的范围,其实可以先创建一个局部变量用来记录
// 区间下限所处的实参,再在代码内统一处理
bool FindIntersection(ClosureSection s1, ClosureSection s2, ClosureSection &sRet)
{
// 判断最小值是否s2的下限
// 不需要建立这个局部变量,这样纯粹是为了清晰
bool bMinIns2 = s1.nLowBound >= s2.nLowBound && s1.nLowBound <= s2.nUpBound;
if(bMinIns2)
{
sRet.nLowBound = s1.nLowBound;
// 取s2和s1的较小上限
sRet.nUpBound = min(s1.nUpBound, s2.nUpBound);
return true;
}
else
{
bool bMinIns1 = s2.nLowBound >= s1.nLowBound && s2.nLowBound <= s1.nUpBound;
if(bMinIns1)
{
sRet.nLowBound = s2.nLowBound;
sRet.nUpBound = min(s1.nUpBound, s2.nUpBound);
return true;
}
}
return false;
}追问老哥,能不能用c写,c++没学过追答你用c写也是一样的,你把那个ClosureSection直接拆成两个参数放进去。
比如ClosureSection s1拆成int nS1LowBound, int nS1UpBound,函数内的s1.nUpBound直接改为nS1UpBound就行。
印象中C应该也有结构体吧,不写这个东西参数有点多。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯