1)结构体
学校在记录学生信息时可能需要用到学生的姓名、身高、体重、年级、成绩、学号等等。这时候我们就希望有一种数据结构能存储下这些信息。显然数组不能完成这项任务,因为虽然数组可以存储多个元素,但所有元素的类型必须相同。这时候结构体就能满足这个需求了,结构体为我们提供了用户自定义类型的行为极大的提高了语言的灵活程度。
#include <iostream>
using namespace std;
//关键字 标记成为新
//struct 类型的名称
struct student
{//左大括号和右大括号
int number; //结构的成员
char name[20];//结构的成员
float score;//结构的成员
};//结束结构声明
//结构描述的组成部分
//注意我们也可以直接在结构体后面建立这种类型的变量
/*
struct node
{
int a;
float b;
}na, nb;//直接定义
*/
int main()
{
student zhangsan;//定义结构后,便可以创建这种类型的变量了
zhangsan.number = 1;//结构体用.来访问各个成员
zhangsan.name = "zhangsan";
zhangsan.score = 99.5;
cout << zhangsan.numbe << ' ' << zhangsan.name << zhangsan.score << endl;
return 0;
}
上述代码的阅读可以明白结构体简单建立的访问,如果需要完成我们开始的问题,就直接建立结构体数组就好了,因为我们定义了新的变量类型,所以开设数组与平时的数组一样就不再赘述了。
2)函数
我们之前使用了大量的别人给的一些方法,其实就时别人写好的函数我们直接使用。这个部分我们说明一下自己如何创建函数与使用函数。
#include <iostream>
using namespace std;
//没有返回值没有形式参数的函数
//返回值 函数名:括号用来开设参数,可以没有参数
void show()
{
cout << "hello world" << endl;
}
//没有返回值有形式参数的函数
//这时候括号中建立参数用来接收调用(使用)者传递给的值
//这给参数也叫形参
void showNumber(int num)//给定形参类型和名称
{
cout << num << endl;//输出形参
}
//形参可以多个
void showSomeNumber(int numa, int numb, double numc)
{
cout << numa << ' ' << numb << ' ' << numc << endl;
}
//带返回值有形式参数的函数
int sumOfAll(int numa, int numb, int numc)//返回值类型为int
{
return numa + numb + numc;//把三个数相加返回
}
int main()
{
//调用(使用)show函数
show();
//调用(使用)showNumber函数
int a = 8;
showNumber(a);//传给函数一个参数a;这个参数称为:实参
//调用(使用)showSomeNumber函数
showSomeNumber(8, 9, 1.4);//尽量传入相同类型的参数避免不必要的错误
//调用(使用)sumOfAll函数
int sum = sumOfAll(5, 6, 7);//sum来接收函数返回的值
cout << sum << endl;
return 0;
}
上述简单的描述了函数如何使用,可以自行组合。还记得字符串吗,其实我们在结构体里写函数这样这个类型就有了函数成员(方法),就可以像string一样使用了(可自行尝试)。
练习:https://www.luogu.com.cn/training/105#problems