秒懂百科,C++如此简单丨第十七天:结构体

目录

作者简介

Everyday English

结构体是什么? 

结构体的定义

结构体的引用 

第一种

第二种 

小试牛刀——成绩管理

结尾


 必看信息 

▶本篇文章由爱编程的小芒果原创,首发于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;
}

结尾

本节课学习我们一起学习了结构体,希望你真得能掌握这门知识,文章制作不易,点个赞再走吧!

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的小芒果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值