#创作计划#C++精选知识#1-结构体
2025-05-11 10:15:13
发布于:浙江
求求了,点个赞吧
@AC君求求了,给个精选吧
导入知识
大家在编程时有没有一个困扰:每当你需要存储多样东西的多个维度的信息时,会十分复杂。如果这些信息类型一样还好,可以开一个二维数组。但如果不一样,就需要开许多个数组了。
这样的表述也许不太清晰,那么我们举一个例子。比如,你要存储一次考试的信息,如果按上面的思路,我们就得先开一个数组存储姓名name
、一个数组存储考号ID
,一个数组存储分数score
。
按照以上思路,如果我们需要输入一场考试的信息,然后将信息一定格式输出,代码如下:
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
string name[n];
string ID[n];
int score[n];
for(int i=1;i<=n;i++) cin>>name[i-1]>>ID[i-1]>>score[i-1];
for(int i=1;i<=n;i++) cout<<ID[i-1]<<"号学生"<<name[i-1]<<"考了"<<score[i-1]<<"分。\n";
return 0;
}
有没有更简单的方法呢?
必须有的啊!
学习新知识
结构体的作用是:存储多个维度的信息。
使用结构体的好处:从属关系更明显。
基本格式
struct 【结构体名】
{
【需要存储的信息的第一个维度】
【需要存储的信息的第二个维度】
.
.
.
};
需要注意的是,在结构体最后,一定要加分号!
详细讲解
使用结构体,相当于你定义了一种新的变量类型。它的含义与类(class)不同,这种“变量”并不是一个“变量”,而是由多个维度组成的。
如果你理解不了,那就依然用考试的例子说明。
如果这个问题使用结构体,那么就相当于定义了一种“学生”变量。这种变量本身有三个数值:姓名、考号和分数。
在你调用这个结构体变量中的某个维度时,格式如下:
结构体变量名称.维度
其中的.
意义相当于“的”。
代码事例
#include<iostream>
using namespace std;
struct student
{
string name;
string ID;
int score;
};
//此处定义了一个结构体:student,包含3个维度:name、ID、score
int main()
{
int n;
cin>>n;
student stu[n];
//这一行代码定义了一个student类型的数组
for(int i=1;i<=n;i++) cin>>stu[i-1].name>>stu[i-1].ID>>stu[i-1].score;
//这里的stu[i-1].XXX含义相当于“第i-1个stu的XXX维度”
for(int i=1;i<=n;i++) cout<<ID[i-1]<<"号学生"<<name[i-1]<<"考了"<<score[i-1]<<"分。\n";
return 0;
}
全部评论 1
队长太有实力了
2025-05-12 来自 浙江
0
有帮助,赞一个