【发布时间】:2015-11-11 04:51:03
【问题描述】:
我在尝试找出一种在数组中打印一些数字的方法时遇到了一些困难。我有一个数组[0,1,2,3,4,5,6],我想打印数字 0,1,4,5。是否可以创建一个循环来读取前两个数字,跳过接下来的两个数字并读取后面的两个数字。
【问题讨论】:
-
您是否针对特定语言?
-
我目前正在用 c 编程
我在尝试找出一种在数组中打印一些数字的方法时遇到了一些困难。我有一个数组[0,1,2,3,4,5,6],我想打印数字 0,1,4,5。是否可以创建一个循环来读取前两个数字,跳过接下来的两个数字并读取后面的两个数字。
【问题讨论】:
你可以简单地对当前索引使用模运算来检查这个数字是属于“打印2”还是“跳过2”:
int a[17];
int length = sizeof(a) / sizeof(a[0]);
for (int i = 0; i < length; i++)
{
if (i % 4 < 2)
printf("%d ", a[i]);
}
所以,i 等于 0 和 1,它将输出值。对于i == 2 和i == 3,条件将结果为假。接下来需要4,4 % 4为0,每4步重复一次。
【讨论】:
arr = [0,1,2,3,4,5,6];
skip = 2;
print = true;
while(i < arr.length){
for(j = 0; j < skip; ++j){
if(print){
output arr[i];
}
//increment array counter
i++;
//toggle print bool
print = !print
}
}
只需更改 skip 的值以设置间隔,如果您希望它跳过第一个 skip 条目,请设置 print = false
【讨论】: