结构体(Struct)可以用来存放一组不同类型的数据
结构体变量的定义:
struct 名称{
结构体所包含的变量和名称;
};
注意:大括号后面的分号
“;”
不能少,这是一条完整的语句。
eg.定义一组学生基本数据
struct stu
{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在学习小组
float score; //成绩
};
结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员。
需要注意的是,结构体是一种自定义的数据类型,是创建变量的模板,不占用内存空间;结构体变量才包含了实实在在的数据,需要内存空间来存储
题目描述
某培训机构的学员有如下信息:
- 姓名(字符串)
- 年龄(周岁,整数)
- 去年 NOIP 成绩(整数,且保证是 5 的倍数 )
经过为期一年的培训,所有同学的成绩都有所提高,提升了 20%(当然 NOIP 满分是 600 分,不能超过这个得分)。
输入学员信息,请设计一个结构体储存这些学生信息,并设计一个函数模拟培训过程,其参数是这样的结构体类型,返回同样的结构体类型,并输出学员信息。
输入格式
无
输出格式
无
输入输出样例
输入
3 kkksc03 24 0 chen_zhe 14 400 nzhtl1477 18 590
输出
kkksc03 25 0 chen_zhe 15 480 nzhtl1477 19 600
已AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
struct student
{
string name;
int age;
int score;
} student[100000]; //这里一定要定义一个数组,便于之后输入数据
int main()
{
int n,i;
scanf("%d",&n);
for(i=0;i<n;++i)
{
cin>>student[i].name>>student[i].age>>student[i].score;
//要输入结构体内的数据一定要用“结构体名.具体项目名”这个格式
student[i].age++;
student[i].score=student[i].score*1.2;
if(student[i].score>=600)
{
student[i].score=600;
}
cout<<student[i].name<<" "<<student[i].age<<" "<<student[i].score<<endl;
}
return 0;
}