w****i 发帖数: 964 | 1 Suppose the array is a1...a9
to iterate it in this order: a1, a9, a2, a8, a3, a7, a4, a6, a5
how to write it in a simple form, say a for loop? | N***m 发帖数: 4460 | 2 i=1;j=9;
while(i<=j)
{
output a[i]
if(i!=j) output a[j]
i++;
j--;
}
【在 w****i 的大作中提到】 : Suppose the array is a1...a9 : to iterate it in this order: a1, a9, a2, a8, a3, a7, a4, a6, a5 : how to write it in a simple form, say a for loop?
| d****n 发帖数: 1637 | 3 sz=10
arr[sz]={0,1,2,3,4,5,6,7,8,9}
int i;
for(i=0;i<(int)sz/2;++i){
printf("%d %d ", arr[i],arr[sz-i-1]);
}
if(sz%2==1) printf(" %d ",arr[sz/2+1]); | d****n 发帖数: 1637 | 4 this is better!
【在 N***m 的大作中提到】 : i=1;j=9; : while(i<=j) : { : output a[i] : if(i!=j) output a[j] : i++; : j--; : }
| N***m 发帖数: 4460 | 5 :)
【在 d****n 的大作中提到】 : this is better!
| w****i 发帖数: 964 | 6 loop里面需要处理一下a[i],有几行code不长不短,想偷懒只写一遍,所以有了这个问题
这里给的两个答案都要写两遍 output a[i]
后来想到这个:
for(i=0;i
if(i%2==0) ptr=i/2 else ptr=len-1-i/2;
/* process a[ptr] */
}
【在 N***m 的大作中提到】 : i=1;j=9; : while(i<=j) : { : output a[i] : if(i!=j) output a[j] : i++; : j--; : }
|
|