2014-10-28 65 views
0

誰能告訴我爲什麼我不能這樣做?for循環中的Pow()函數C

它不編譯,我知道我不知道怎麼錯了。

我試圖打印2的權力,但我不能這樣做。

任何人都可以幫助我嗎?這是我寫的代碼。我在linux上使用gcc。

#include <stdio.h> 
#include <math.h> 

int main() { 

    int power; 

    printf("Powers of 2:\n"); 

    {int i; 
     for(i = 0; i < 30; i++){ 
      power = pow(2,i); 
      printf("%s%i %s %i %s","2^",i,"=",power,"\n"); 

     } 
    } 

    return 0; 
} 
+2

如何問一個好問題:替換*它不會編譯*到實際的編譯錯誤。對於這個問題,你使用了'-lm'嗎? – 2014-10-28 05:56:21

+1

使用'-lm'編譯 – 2014-10-28 05:57:05

+3

每個人都有pow的問題:P – P0W 2014-10-28 05:58:13

回答

4

gcc foo.c -lm -o foo

你有這樣進行編譯。 「m」是數學LIB

+0

它的工作,非常感謝你。 – kurupi13 2014-10-28 06:02:25

0

此編譯在Xcode和GCC罰款,但像老版本的Xcode的一些編譯器不喜歡沒有在INT main()函數的空白。你的代碼中也有一些過多的東西。

int聲明之前的括號是毫無意義的。你的印刷資料看起來也很瘋狂。 這個代碼可以完成同樣的事情。

#include <stdio.h> 
#include <math.h> 

int main(void) 
{ 

    int power, i; 

    printf("Powers of 2:\n"); 
    for(i = 0; i < 30; i++) 
    { 
     power = pow(2,i); 
     printf("2^%i = %i\n",i,power); 
    } 
    return 0; 
} 

順便說一句,如果你想獲得真正的瘋狂,你的打印statment可能只是
的printf( 「2 ^%I =剩餘%.0f \ n」,我,POW(2,1));