c - 从中间然后开始迭代数组

标签 c arrays loops

我想从靠近中间的索引开始迭代任何数组,走到末尾,然后转到开头。
举个例子:

#include <stdio.h>

int main(){


int a[]= {1, 2, 3, 4, 5, 6, 7,};

int i = 0;

for (i = 2; i < 6; i++){

    if (i == 6){
        i = 0;

    }

    printf("%d\n", a[i]);
}

return 0;
}

当索引到达末尾(索引 6)时,如何将索引“重新分配”为零

最佳答案

这是一个简单的记录。未经测试,因此请根据需要进行调整。这个想法是让计数器从 0 开始,并使用模数每次添加开始值以使其相对。

int a[]= {1, 2, 3, 4, 5, 6, 7};

int length = sizeof(a)/sizeof(a[0]);
int start = length/2;

for (int i = 0; i < length; i++)
{
  printf("%d\n", a[(i+start)%length]);
}

并支持@SouravGhosh 在我得到这个答案之前在评论中指出模数。

关于c - 从中间然后开始迭代数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37947103/

相关文章:

c - 将部分添加到链接上的可执行文件

c - 当我尝试在其他线程中调用 GtkWidget 对象时,GTK 应用程序崩溃

c++ - 用于保护 PDF 不被复制、编辑和打印(不是查看)的密码库

oracle - 如何在oracle中创建一个接受参数数组的存储过程

arrays - 嵌套 *ngFors - 更好的选择? ( Angular 7)

c - 终端中的段错误(核心转储)但 Xcode 中没有

javascript - 从数组 javascript 中删除元素(反向交集)

c - while 循环和嵌套 if 不能一起工作

python - 如何在Python中返回多个时间序列图?

javascript - 循环访问站点上的链接并单击链接 javascript/jquery