数组,其中每个偶数索引乘以2,奇数索引乘以3

时间:2018-07-11 10:14:17

标签: c arrays

我是新来的。我有这段代码,其中每个数组的元素都由3供电,从而得到类似3pow0、3pow1、3pow2、3pow3等的结果:

#include    <stdio.h>
#include    <stdlib.h>

int main(void){

    const int n = 10;
    int pwr[n];
    pwr[0] = 1;
    int k = 1;
    printf("%d ", pwr[0]);

    while(k < n){
        pwr[k] = pwr[k - 1] * 3;
        printf(" %d ", pwr[k]);
        k++;
        }
    return 0;
}

现在,我需要使数组中的每个奇数索引由3乘幂,而每个偶数索引由2乘幂。

我尝试使用while(k < n && k % 2 == 1)之类的东西,并且还使用了“ for”和“ if-else”。无法弄清楚如何使其工作。

2 个答案:

答案 0 :(得分:2)

您可以使用:

    pwr[k] = pwr[k - 1] * ((k%2)+2);

如果k为奇数,则k%2为1,因此它将乘以3。

答案 1 :(得分:1)

用伪代码,我想你想要的是

for(i in some range of values) {
    if(i is even) {
        array[i] = i * i;
    } else {
        array[i] = i * i * i;
    }
}

我会让你将其翻译成适当的C。