数组的for循环的替代实现

我正在尝试实现以下代码。但是根据编码准则,必须实现以下内容而没有任何循环(例如,禁止循环)。

有人可以使用if else语句帮助我编写代码吗?

max= 0.4 / cycleTime;  //The cycle time can vary from 0.05 to 0.2
for(i = max; i>0; i--)
{
    arr[i]= arr[i-1];
    ArrMin = ArrMin.min(arr[i]);
    ArrMax = ArrMax.max(arr[i]);
}
yzmjsk92856 回答:数组的for循环的替代实现

展开它,并在开关盒中使用max
这是Duff的无环装置。

i=max;
switch (max) 
{
case 8:
    arr[i]= arr[i-1];    ArrMin = ArrMin.min(arr[i]);    ArrMax = ArrMax.max(arr[i]);
    i--;
case 7:
    arr[i]= arr[i-1];    ArrMin = ArrMin.min(arr[i]);    ArrMax = ArrMax.max(arr[i]);
    i--;
case 6:
    arr[i]= arr[i-1];    ArrMin = ArrMin.min(arr[i]);    ArrMax = ArrMax.max(arr[i]);
    i--;
case 5:
    arr[i]= arr[i-1];    ArrMin = ArrMin.min(arr[i]);    ArrMax = ArrMax.max(arr[i]);
    i--;
case 4:
    arr[i]= arr[i-1];    ArrMin = ArrMin.min(arr[i]);    ArrMax = ArrMax.max(arr[i]);
    i--;
case 3:
    arr[i]= arr[i-1];    ArrMin = ArrMin.min(arr[i]);    ArrMax = ArrMax.max(arr[i]);
    i--;
case 2:
    arr[i]= arr[i-1];    ArrMin = ArrMin.min(arr[i]);    ArrMax = ArrMax.max(arr[i]);
    i--;
    arr[i]= arr[i-1];    ArrMin = ArrMin.min(arr[i]);    ArrMax = ArrMax.max(arr[i]);
    i--;
}
,

递归FTW !!

int minimum(int *array,size_t len) {
    assert(len > 0);
    if (len == 1) {
        return *array;
    } else {
        int tmp = minimum(array + 1,len - 1);
        return tmp < *array ? tmp : *array;
    }
}

maximum()

类似
本文链接:https://www.f2er.com/3169074.html

大家都在问