循环是否显示C中2的前30次幂?

循环是否显示C中2的前30次幂?,c,C,我想打印2的幂,直到某些数字?在这里,我想打印2的前30次方。下面是我的代码!但我不知道解决办法 #include <stdio.h> int main() { int i; //long pot = 1; for(i=0; i<=32; i=i*2) { printf("%d ", i); } return 0; } #包括 int main(){ int i; //长罐=1; 对于(i=0;i我想你的

我想打印2的幂,直到某些数字?在这里,我想打印2的前30次方。下面是我的代码!但我不知道解决办法

#include <stdio.h>

int main() {

    int i;

    //long pot = 1;

    for(i=0; i<=32; i=i*2) {

        printf("%d ", i);

    }

    return 0;

}
#包括
int main(){
int i;
//长罐=1;

对于(i=0;i我想你的意思是:

#include <stdio.h>

int main(int argc, char *argv[]) {
    long value = 1;

    for (int i = 0; i < 30; i += 1) {
        printf("%ld\n", value);
        value *= 2;
    }
}
#包括
int main(int argc,char*argv[]){
长值=1;
对于(int i=0;i<30;i+=1){
printf(“%ld\n”,值);
数值*=2;
}
}

从0开始
i
,然后在每次迭代中执行
i=i*2
。这将始终导致0,因为您要乘以0

您希望从1开始。然后您的乘法将起作用。此外,您需要
i
停止在230而不是32

但是,还有另一种方法可以做到这一点。你可以利用乘2等于左移1的事实:

for(i=0; i<30; i++) {
    printf("%d ", 1 << i);
}
(i=0;i)的

循环是否显示C中2的前30次幂

在循环中进行处理(乘法)。这是最常见的方法

#include <stdio.h>

#define POWER_UP_TO   30

int main(void) {

    long long int value = 1;

    for (int i = 0; i < POWER_UP_TO; i++) {  // will loop POWER_UP_TO times

        printf("2^%d = %lld\n", i, value);
        value = value * 2;
    }

    return 0;
}
#包括
int main(int argc,char*argv[]){
长整型n=1;
对于(int i=0;i<30;i++){
printf(“%lld\n”,n);
n=n*2;
}
返回0;
}

如果你将
i
初始化为
0
,任何后续的乘法都会导致..什么?当然,与32的比较是不正确的,因为你的
i
应该保存结果。你在这里使用i有两个目的:它是你的循环索引和你的值,所以你只需要遍历循环5次。调试器,p“i”的rintf,诸如此类的东西。编写代码很容易,测试和调试很难,这就是你必须提高的地方。
2^0 = 1                                                                                                                                       
2^1 = 2                                                                                                                                       
2^2 = 4                                                                                                                                       
2^3 = 8                                                                                                                                       
2^4 = 16                                                                                                                                      
2^5 = 32                                                                                                                                      
2^6 = 64                                                                                                                                      
2^7 = 128                                                                                                                                     
2^8 = 256                                                                                                                                     
2^9 = 512                                                                                                                                     
2^10 = 1024                                                                                                                                   
2^11 = 2048                                                                                                                                   
2^12 = 4096                                                                                                                                   
2^13 = 8192                                                                                                                                   
2^14 = 16384                                                                                                                                  
2^15 = 32768                                                                                                                                  
2^16 = 65536                                                                                                                                  
2^17 = 131072                                                                                                                                 
2^18 = 262144                                                                                                                                 
2^19 = 524288                                                                                                                                 
2^20 = 1048576                                                                                                                                
2^21 = 2097152                                                                                                                                
2^22 = 4194304                                                                                                                                
2^23 = 8388608                                                                                                                                
2^24 = 16777216                                                                                                                               
2^25 = 33554432                                                                                                                               
2^26 = 67108864                                                                                                                               
2^27 = 134217728                                                                                                                              
2^28 = 268435456                                                                                                                              
2^29 = 536870912      
#include <stdio.h>

int main(int argc, char *argv[]) {
    long long int n = 1;

    for (int i = 0; i < 30; i++) {
        printf("%lld\n", n);
        n = n*2;
    }
    return 0;
    }