我得到一个if条件为5的倍数,我需要检查条件是否值直到值<= 10000.我的if语句看起来像这样
// in main function
if(value >=0 && value <16){
function(number,value);
}
else if(value >=5 && value <10){
value-=16;
function(number,value);
}
....
// function
int function(int n, int value){
return (n<<value)|(n>>(16-value))
}
如果声明有更好的方法吗?我是编程世界的新手,有点好奇知道如何做到这一点。
提前致谢
答案 0 :(得分:1)
你可以使用函数指针。
typedef void (*func)();
func fpointers[] = {func1, func2, func3}
int check = value / 5;
fpointers [check] ();
答案 1 :(得分:0)
如果你需要评估5的倍数的条件,我建议你使用swich case
int check = value/5;
switch(check)
{
case 0: // 0 <= value < 5
// do things
break;
case 1 : // 5 <= value < 10
// do things ...
break;
.............
default:
break;
}
答案 2 :(得分:0)
将您从value
减去的金额放入数组中,每个范围的索引为5的倍数:
int subtract[] = [2, 5, ...];
if (value > 0 && value < 5*(sizeof subtract/sizeof(*subtract))) {
value -= subtract[value/5];
functioncall(value);
}
答案 3 :(得分:0)
我得到if条件为5的倍数
要检查数字是否是5的倍数,请使用模数运算符:
if (number % 5 == 0) ...
我需要检查条件,直到值
听起来你需要一个循环。