搜索

a function-definition is not allowed here before '{' token_百度知...

发布网友 发布时间:2024-10-24 09:53

我来回答

1个回答

热心网友 时间:2024-11-13 22:55

#include<iostream.h>
#include<windows.h>
#include<string.h>
struct student1        //这两个结构体和下面的主函数是我自己加的,便于调试
{
char na[20];
int n;
char s[5];
float cpp,shu,wu;
};
struct student2
{
char na[20];
int n;
char s[5];
float wen,ke,yi;
};
student1 *p1=(struct student1*)malloc(sizeof(student1));//p1,p2是全局的,我开始犯的错误就是,
//没为它们开辟内存空间,引起了写错误
student2 *p2=(struct student2*)malloc(sizeof(student2));

int search(student1 *p1,student2 *p2)  //为函数设一个返回值,方便后面对于判断的处理
{
char name1[20];int numble;
void nameput(char name1[20]);
void numput(int numble);
//cin>>(name1||numble);          //因为这样写会报错,所以对于下面的判断有较大幅度的修改
char c;
cout<<"是否选择按姓名查找(Y是,N按学好查找,C取消)...";
cin>>c;
if(c=='Y'||c=='y')
{
cin>>name1;
if(strcmp(p1->na,name1)==0||strcmp(p2->na,name1)==0)  
nameput(name1);
else 
cout<<"无所查询学生信息!!!"<<endl;
}
    else if(c=='N'||c=='n')  
{
cin>>numble;
if((p1->n==numble||p2->n==numble))    
numput(numble);
else 
cout<<"无所查询学生信息!!!"<<endl;
}
else if(c=='C'||c=='c')
return -1;
return -1;
}
void nameput(char name1[20])
{
   if(strcmp(p1->na,name1)==0)
{
cout<<"学号"<<p1->n<<" "<<"姓名"<<p1->na<<" "<<"性别"<<p1->s<<" ";
cout<<"成绩分布:"<<"c++:"<<p1->cpp<<" "<<"高数:"<<p1->shu<<" "<<"大物:"<<p1->wu<<endl;
                                          //这里你的endl前面加了一个分号,报错了
}
if(strcmp(p2->na,name1)==0)
    {
cout<<"学号"<<p2->n<<" "<<"姓名"<<p2->na<<" "<<"性别"<<p2->s<<" ";
cout<<"成绩分布:"<<"语文:"<<p2->wen<<" "<<"马克:"<<p2->ke<<" "<<"艺术:"<<p2->yi<<endl;//
    }
}
void numput(int numble)
{
    if(p1->n=numble)
{
cout<<"学号"<<p1->n<<" "<<"姓名"<<p1->na<<" "<<"性别"<<p1->s<<" ";
cout<<"成绩分布:"<<"c++:"<<p1->cpp<<" "<<"高数:"<<p1->shu<<" "<<"大物:"<<p1->wu<<endl;//
}
if(p2->n==numble)//
    {
cout<<"学号"<<p2->n<<" "<<"姓名"<<p2->na<<" "<<"性别"<<p2->s<<" ";
cout<<"成绩分布:"<<"语文:"<<p2->wen<<" "<<"马克:"<<p2->ke<<" "<<"艺术:"<<p2->yi<<endl;//
    }
}
int main()
{
p1->cpp=80.0;
p1->n=555;
p1->shu=79.5;
p1->wu=77;
wsprintf(p1->na,"%s","ZhangS");
wsprintf(p1->s,"%s","Boy");

p2->ke=81.0;
p2->n=666;
p2->wen=78.5;
p2->yi=85.0;
wsprintf(p2->na,"%s","LiQ");
wsprintf(p2->s,"%s","Girl");

numput(555);
nameput("LiQ");
search(p1,p2);
return 0;
}

运行的结果是

a function-definition is not allowed here before '{' token的意思是说,有代码放错位置了么,可不可以找到具体在程序的哪一行?没有完整的代码,我也不敢猜测,只能做到这些了...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top