...allowed here before '{' token c语言报错!

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

我来回答

2个回答

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

代码不全 不过近看这部分代码
发现三处有确定问题
1) cin>>(name1||numble); 这样的写法是非法的 cin没办法自动鉴别输入的数据并把它存到相应的变量中
C++目前无法做到这样的智能操作
常规的做法是先输入查询类型 再进行对应输入
2) 输出成绩的代码中都多了一个分号 比如
cout<<"成绩分布:"<<"c++:"<cpp<<" "<<"高数:"<shu<<" "<<"大物:"<wu;<<endl;
注意p1->wu后面的分号 是不可以有的
cout<<"成绩分布:"<<"c++:"<cpp<<" "<<"高数:"<shu<<" "<<"大物:"<wu<<endl;
这样就对了
类似的
其它三句成绩分布也有一样的问题 你是复制过来的吧

3)
numput中 if(p1->n=numble)和if(p2->n=numble)两个判断 =应为==

还有一处不确定的问题 估计也是错误
nameput和numput中的p1 p2是什么? 如果是search中的p1 p2那么需要作为参数传过去 或者设置为全局变量

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

#include
#include
#include
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<<"学号"<n<<" "<<"姓名"<na<<" "<<"性别"<s<<" ";
cout<<"成绩分布:"<<"c++:"<cpp<<" "<<"高数:"<shu<<" "<<"大物:"<wu<<endl;
//这里你的endl前面加了一个分号,报错了
}
if(strcmp(p2->na,name1)==0)
{
cout<<"学号"<n<<" "<<"姓名"<na<<" "<<"性别"<s<<" ";
cout<<"成绩分布:"<<"语文:"<wen<<" "<<"马克:"<ke<<" "<<"艺术:"<yi<<endl;//
}
}
void numput(int numble)
{
if(p1->n=numble)
{
cout<<"学号"<n<<" "<<"姓名"<na<<" "<<"性别"<s<<" ";
cout<<"成绩分布:"<<"c++:"<cpp<<" "<<"高数:"<shu<<" "<<"大物:"<wu<<endl;//
}
if(p2->n==numble)//
{
cout<<"学号"<n<<" "<<"姓名"<na<<" "<<"性别"<s<<" ";
cout<<"成绩分布:"<<"语文:"<wen<<" "<<"马克:"<ke<<" "<<"艺术:"<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;
}

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