一、简介
结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员” ,其描述了一块内存区间的大小及解释意义。
可以通过这样的方法定义结构体:
struct student{
string name;//定义学生姓名
int num;//定义学生编号
int Chinese_Score;//定义语文成绩
int Maths_Score;//定义数学成绩
int English_Score;//定义英语成绩
int Sum_Score;//定义总成绩
int pg;//定义等级
}stu[101];//定义该结构体数组
二、相关操作
顺序输入结构体
int main()
{
int n;
cout<<"请输入学生个数:";
cin>>n;
for(int i=0; i<n; i++)
{
cout<<"请输入当前学生姓名:";
cin>>stu[i].name;
cout<<"请输入当前学生学号:";
cin>>stu[i].num;
cout<<"请顺序输入当前学生语文、数学、英语成绩:";
cin>>stu[i].Chinese_Score>>stu[i].Maths_Score>>stu[i].English_Score;
cout<<"请输入当前学生评级:";
cin>>stu[i].pg;
}
}
注意,在输入的时候,应该先声明输入的数组名称和下标,再声明结构体成员名称。
顺序输出结构体
void pirnt(int n)
{
cout<<"------------------"<<endl;
for(int i=0; i<n; i++)
{
cout<<"当前学生姓名:"<<stu[i].name<<endl;
cout<<"当前学生学号:"<<stu[i].num<<endl;
cout<<"当前学生语文成绩:"<<stu[i].Chinese_Score<<endl;
cout<<"当前学生数学成绩:"<<stu[i].Maths_Score<<endl;
cout<<"当前学生英语成绩:"<<stu[i].English_Score<<endl;
cout<<"当前学生评级:"<<stu[i].pg<<endl;
cout<<"------------------"<<endl;
}
}
结构体排序
bool cmp(student a,student b)
{
return a.Sum_Score>b.Sum_Score;//按照总成绩从大到小排序
}
void sortt(int n)
{
sort(stu,stu+n,cmp);
print();
}
这里使用了排序函数sort。当然,如果是对结构体进行排序的话,必须要有cmp函数来声明排序方法。
结构体嵌套
struct teacher
{
int num;
string name;
int age;
struct student stu;
//struct Student stu[100];
};
这是老师的结构体,每个老师还带了一些学生,所以应当嵌套一层学生结构体。
结构体指针
以上就是本文的全部内容啦!感谢阅读!