遍历数组,然后向后循环。 [C]

时间:2020-05-04 19:16:39

标签: c algorithm

我想让一个程序遍历数组然后向后循环。我如何用更少的C语言来使其更好?数组有8个元素!

while (1) {
    if (i == 0) {
        direction = 0; // RIGHT DIRECTION
    }
    if (i == 7) {
        direction = 1; // LEFT DIRECTION
    }
    PORTD = array[i]; // NEEDED ARRAY ELEMENT

    if (direction == 0) {
        i++;
    } else {
        i--;
    }
}

2 个答案:

答案 0 :(得分:2)

您可以通过使下一个索引direction1递增-1来简化代码。

这是修改后的版本:

int i = 0, direction = 1;
for (i = 0;; i += direction) {
    if (i == 0) {
        direction = 1; // RIGHT DIRECTION
    } else
    if (i == 7) {
        direction = -1; // LEFT DIRECTION
    }
    PORTD = array[i]; // NEEDED ARRAY ELEMENT
}

答案 1 :(得分:0)

正如其他人指出的那样,您需要反转增量变量的符号,然后需要使用适当的条件来终止循环:

pd.concat([df.groupby('car_id').apply(lambda x: x.head(1))[['car_id','name']].set_index('car_id'), \
df.groupby('car_id').agg({'aa': np.sum, 'bb': np.sum, 'cc':np.sum}).reset_index().set_index('car_id')], axis = 1).reset_index()


    car_id  name    aa  bb  cc
0   100 buicks  0.001   0.004   0.0
1   101 chevy   0.002   0.000   0.0
2   102 olds    0.003   0.006   0.0
3   103 nissan  0.000   0.140   0.1