C语言间隔6个数连续取2个数怎么做?

有一个数组a,要取第1第2、第7第8、第13第14、第19第20。放到数组b里。
用C语言怎么写?

首先纠正一下,你举的例子是间隔4个数,连续取2个
而且你的例子不是从第0个开始。
我下面就以间隔6个数,连续取2个来距离(间隔4个方法相同)

我举2个例子:
思路①:先找第0,8,16...放入b[0],b[2],b[4,]...,然后再找第1,9,17....放入b[1],b[3],b[5].....
这样就可以了
思路②用循环,中间只要有一个判断就可以了,我把这个的过程给你打上
我的例子是以20个数字的数组,间隔6
如果你要变化数组个数,只要把 #define N 20 中的20替换即可,注意20前面有“空格”
如果你要变化间隔个数,只要把 #define M 6 中的6替换即可,注意6前面有“空格”
注意:输入数组时,用“回车”或者“空格”来隔开输入的数字,不要用“逗号”

#include<stdio.h>
#define N 20
#define M 6
void main()
{
int a[N],b[N],i,n;
for(i=0;i<=N-1;i++)scanf("%d",&a[i]);
i=0;n=0;
while(i<=N-1)
{
if((i+M+1)%(M+2)==0)
{
b[n++]=a[i];
i+=M+1;
}
else
{
b[n++]=a[i++];
}
}
for(i=0;i<=n-1;i++)printf("%d,",b[i]);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-12

每间隔6个数取2个数,即取第6i+1和6i+2(i为自然数)个数,假设数组的长度为20 ,即具体实现算法如下:

第2个回答  2010-12-03
for(int i=0,j=0;i<n;i++) if (i%6==0 || i%6==1) b[j++]=a[i];