C++ syntax error : ')'
#include"iostream.h"structstu{intnum;char*name;charsex;floatscore;}student[5]={{101,"...
#include"iostream.h"
struct stu
{
int num;
char *name;
char sex;
float score;
} student[5]={{101,"Li ping",'M',45},
{102,"Zhang ping",'M',62.5},
{103,"He fang",'F',92.5),
{104,"Cheng ling",'F',87},
{105,"Wang ming",'M',58}
};
float ave(struct stu *ps)
{
int i;
float s=0;
for(i=0;i<5;i++,ps++)
s+=ps->score;
return s/5;
}
int nopass(struct stu *ps)
{
int c=0,i;
for(i=0;i<5;i++,ps++)
if(ps->score<60)
c++;
return c;
}
void main()
{
struct stu *ps;
ps=student;
cout<<"aver="<<ave(ps)<<endl;
cout<<"nopass="<<nopass(ps)<<endl;
}
--------------------Configuration: 71 - Win32 Debug--------------------
Compiling...
71.cpp
F:\1\71\71.cpp(10) : error C2059: syntax error : ')'
F:\1\71\71.cpp(11) : error C2078: too many initializers
F:\1\71\71.cpp(13) : error C2059: syntax error : ';'
执行 cl.exe 时出错.
71.obj - 1 error(s), 0 warning(s) 展开
struct stu
{
int num;
char *name;
char sex;
float score;
} student[5]={{101,"Li ping",'M',45},
{102,"Zhang ping",'M',62.5},
{103,"He fang",'F',92.5),
{104,"Cheng ling",'F',87},
{105,"Wang ming",'M',58}
};
float ave(struct stu *ps)
{
int i;
float s=0;
for(i=0;i<5;i++,ps++)
s+=ps->score;
return s/5;
}
int nopass(struct stu *ps)
{
int c=0,i;
for(i=0;i<5;i++,ps++)
if(ps->score<60)
c++;
return c;
}
void main()
{
struct stu *ps;
ps=student;
cout<<"aver="<<ave(ps)<<endl;
cout<<"nopass="<<nopass(ps)<<endl;
}
--------------------Configuration: 71 - Win32 Debug--------------------
Compiling...
71.cpp
F:\1\71\71.cpp(10) : error C2059: syntax error : ')'
F:\1\71\71.cpp(11) : error C2078: too many initializers
F:\1\71\71.cpp(13) : error C2059: syntax error : ';'
执行 cl.exe 时出错.
71.obj - 1 error(s), 0 warning(s) 展开
展开全部
简单看了下是语法错误,{103,"He fang",'F',92.5)中的最后一个)改为},就行了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
struct stu
{
int num;
char name[256]; //结构体里面尽量不要用指针。这是大神的领域,我等小民老实点吧,虽然浪费,但稳定。
char sex;
float score;
}
.....
void main()
{
stu student[5]={....}; //建议用时再定义 应该能解决 “too many initializers”
stu *ps=&student[0]; //这样写虽然麻烦,但看的清楚。
cout<<"aver="<<ave(ps)<<endl;
cout<<"nopass="<<nopass(ps)<<endl;
}
为啥非要用指针呀,既然操作的是数组,直接用下标更清晰呀。指针应该常用在链表吧。
上面的仅做参考哈,没时间验证。
{
int num;
char name[256]; //结构体里面尽量不要用指针。这是大神的领域,我等小民老实点吧,虽然浪费,但稳定。
char sex;
float score;
}
.....
void main()
{
stu student[5]={....}; //建议用时再定义 应该能解决 “too many initializers”
stu *ps=&student[0]; //这样写虽然麻烦,但看的清楚。
cout<<"aver="<<ave(ps)<<endl;
cout<<"nopass="<<nopass(ps)<<endl;
}
为啥非要用指针呀,既然操作的是数组,直接用下标更清晰呀。指针应该常用在链表吧。
上面的仅做参考哈,没时间验证。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
{103,"He fang",'F',92.5)改为{103,"He fang",'F',92.5}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用构造函数赋值试一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询