2013-01-04 150 views
0

所以我真的不知道我的代码有什么问题。任何建议都会有帮助。看看我评论的代码部分(朝中间)。电脑给我一个错误,说预计会有一个“;”。有些东西是错误的支架或我搞砸了一些其他地方,只是无法找到它。C++编译错误/语法错误?错误原因不明

//Experiment2 
//Creating functions and recalling them. 
#include <iostream> 
using namespace std; 

void a() 
{ 
cout<<"You try running but trip and fall and the crazy man kills you!!!!      HAAHAHAHHAHA."; 
} 


void b() 
{ 
cout<<"You stop drop and roll and the crazy man is confused by this and leaves you alone!"; 
} 

void c() 
{ 
cout<<"you try fighting the man but end up losing sorry!"; 
} 




int main() 
{ 
int a; 
int b; 
int c; 
int d; 
a=1; 
b=2; 
c=3; 

cout<< "Once upon a time you was walking to school,\n"; 
cout<< " when all of the sudden some crazy guy comes running at you!!!!"<<endl; 
cout<< " (This is the begining of your interactive story)"<<endl; 
cout<< "Enter in the number according to what you want to do.\n"; 
cout<< " 1: run away, 2:stop drop and roll, or 3: fight the man."<<endl; 
cin>>d; 
void checkd() 
//i dont know whats wrong with the bracket! the computer gives me an error saying expected a";" 
{ 
    if(d==1) 

    { 
     void a(); 
    } 

    if(d==2) 

    { 
     void b(); 
    } 

    if(d==3) 

    { 
     void c(); 
    } 
} 
} 

回答

1

您不能在另一个函数中定义函数。您在main函数中定义了函数checkd()

移动函数体main之外,刚刚从main调用该函数为:

checkd(d); 

也许,你还想要的功能把它需要比较的参数。

此外,

void a(); 

不会调用函数a()它只是声明函数,调用你需要的功能:

a(); 

void checkd(int d) 

{ 
    if(d==1) 

    { 
     a(); 
    } 

    if(d==2) 

    { 
     b(); 
    } 

    if(d==3) 
    { 
     c(); 
    } 
} 
int main() 
{ 
    .... 
    .... 
    cout<< " 1: run away, 2:stop drop and roll, or 3: fight the man."<<endl; 
    cin>>d; 
    checkd(); 

    return 0; 
} 
+0

谢谢!!!!! !!!!!!!!! –

+0

@Constantinius:函数不带参数,但它应该。 –