我对arduino实现这个python算法有问题。帮我这样做..
def Process(lst):
for k in range(len(lst)):
for i in range(len(lst)-1):
if abs(lst[i]-lst[i+1])==2 and lst[i+1]!=0:
for j in range(i,len(lst)-2):
lst[j]=lst[j+2]
lst[-1]=lst[-2]=0
return(lst)
答案 0 :(得分:0)
让您入门的一些想法: 你在Arduino的C中确实没有列表。您可以在那里使用的数据结构是一个数组。有关详细信息,请参阅https://www.arduino.cc/en/Reference/Array。
将数组传递给例如函数通过指向数组第一个元素的指针完成。由于这不足以确定数组的大小,因此通常还提供元素的大小/数量。这导致了函数的可能签名:
int* process(int* lst, int numberOfElements) { ... }
Python中的 range(n)
将所有数字从0返回到n-1。为了在C中执行相同操作并迭代数组的元素,您基本上从0循环到numberOfElements-1。然后,您可以通过索引访问数组中的元素,即:
for(int i = 0; i < numberOfElements; i++) {
(...)
lst[i] = lst[j + 2];
}
希望这是足以帮助您入门的信息。