2014-11-17 101 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 [..]的函数,应仅在命名空间或 类范围来限定。

所以你在做什么是根本不允许的。