2014-11-17 134 views
-1

我是C++的總新手。 我寫此功能,但不知它給我這個錯誤函數定義不允許在這裏?

Error: a function-definition is not allowed here before '{' token 

我的代碼是

int main() { 
    //number is given num 
    // power is raise to power 
    int raiseTo(int number, int power) 
    { 
     for (int i=0;i<=power;i++) 
     {  
      number=number*number; 
     } 
     return number; 
    } 
} 

請告訴我,我做錯了。謝謝。

+2

查看基本教程。這是錯誤的。 –

+4

順便說一句,你沒有執行* power *。 –

+0

好吧,我明白了..謝謝。 –

回答

4

兩個主要問題:

  1. 你不應該實現一個函數裏面的函數
  2. 你沒有執行權力算法正確

試試這個代碼,而不是:

int raiseTo(int number,int power) 
{ 
    int result = 1; 
    for (int i=0; i<power; i++) 
    { 
     result = result*number; 
    } 
    return result; 
} 

int main() 
{ 
    int x = 2; 
    int y = 3; 
    int z = raiseTo(x,y); 
    printf("%d^%d = %d\n",x,y,z); 
    return 0; 
} 
4

C++標準表示:

§8.4.1/2 [..]的函數,應僅在命名空間或 類範圍來限定。

所以你在做什麼是根本不允許的。