目录
必看信息
▶本篇文章由爱编程的小芒果原创,首发于CSDN,未经许可,严禁转载。
▶本篇文章被收录于秒懂百科,C++如此简单专栏,欢迎订阅。
☆专栏亮点☆
1.每篇文章质量高,质量分保证在80分以上。
2.文章的内容清晰有条理,图文并茂,附有源代码。
3.每个知识点讲解详细,会有很多补充扩展。
4.若哪个知识点没有懂,可以私信我,我会尽可能地帮助你。
Everyday English
Enrich your life today. Yesterday is history,and tomorrow is mystery.
充实今朝,昨日已成过去,明天充满神奇。
结构体是什么?
结构体(Struct)是编程中的一个重要概念,尤其在C、C++、C#等语言中经常使用。它允许你将不同的数据类型组合成一个自定义的复合类型。这样,你可以更方便地处理和管理相关的数据集合。
我猜你肯定没看懂吧,请听我解释。首先我们可以用一下我们学过的拆字组词法,结构体就是结构+体,结构很好理解就是数据结构,而体代表很多组合在一起,那么结构体就是一个类型包含很多数据结构/类型。这下听懂了吧~
结构体的定义
首先我们得知道结构体的英文是struct,然后给结构体取一个名:
struct 变量名
{
//...
};
注意:一定要在结尾加分号!!!
在结构体里你可以添加一些变量,如:
struct node
{
int sum;
float arr;
//...
};
一个结构体就定义好了,简单吧。
结构体的引用
结构体的引用有两种方法,两种都可以用,我更喜欢第一种。
第一种
直接在结构体后面引用,表示定义了一个node类型的数组,每个数组元素都有sum和arr。
struct node
{
int sum;
float arr;
//...
}a[105];
第二种
单独引用,优点是清晰明了,缺点是会多写一个结构体名称。
struct node
{
int sum;
float arr;
//...
};
node b[1005];
要想引用单个元素的话需要用以下格式,如我要引用b[2]的sum元素:
b[2].sum
再比如我要输出a[100]的arr元素:
cout<<a[100].arr<<endl;
懂了吗?引用什么元素前记得加一个‘.’。
小试牛刀——成绩管理
题目要求
分别输入n个人的名字,语文、数学、英语成绩,输出n个人中总分第一名的名字。
样例输入
5
Jack 95.5 97.5 97
Alice 93 100 90
Eric 90 100 100
Bob 96 99.5 95
Fanny 95 98 94.5
样例输出
Bob
注意要点
1.需要自定义比较函数,排序方式为总分从高到低。
2.成绩肯可能是小数,得用double。
参考代码
#include<bits/stdc++.h>
using namespace std;
struct node{
string name;
double ch,ma,en,sum=0;//注意成绩可能是小数
}a[1005];
bool cmp(node x,node y)//自定义比较函数
{
return x.sum>y.sum;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].name>>a[i].ch>>a[i].ma>>a[i].en;
a[i].sum=a[i].ch+a[i].ma+a[i].en;
}
sort(a+1,a+n+1,cmp);
cout<<a[1].name<<endl;
return 0;
}
结尾
本节课学习我们一起学习了结构体,希望你真得能掌握这门知识,文章制作不易,点个赞再走吧!