首先解答你图片中的问题:
displaypen(stdu[4])改成 displaypen(stdu)就可以了,原因如下:
displaypen(stdu[4])这么写的时候,stdu[4]是一个student 类型的元素,而不是结构体数组,而且,sudu[4]越界了。而stdu是结构体数组stdu的首地址,所以直接写成 displaypen(stdu)就可以了。
另外,还有几个问题:
(1)你的displaypen函数中 std[i].com.computerscore这个地方,student结构体中,没有com这个变量,是不是应该改成
stu[i].classroom
(2)结构体数据的初始化,不能在声明变量的时候初始化,可以添加构造函数的方式初始化,如下:
struct pen
{
int basic ;
int zh ;
int penscore ;
pen(){basic =0;zh=0;penscore=0;}
};
struct student
{
string num;
string name;
string classroom ;
struct pen pe;
student(){num=""; name="";classroom="";} //string类型初始化为"",而不是0
};