我正在尝试实现以下代码。但是根据编码准则,必须实现以下内容而没有任何循环(例如,禁止循环)。
有人可以使用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]);
}
答案 0 :(得分:1)
展开它,并在开关盒中使用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--;
}
答案 1 :(得分:0)
递归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()