这段代码如何转换为arduino

时间:2016-10-17 14:21:26

标签: python arduino

我对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)

1 个答案:

答案 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];
}

希望这是足以帮助您入门的信息。