我是新来的。我有这段代码,其中每个数组的元素都由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”。无法弄清楚如何使其工作。
答案 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。