[NKU]C++基础课(五)补充:结构体





【3.3】C++结构体介绍_哔哩哔哩_bilibili

举例1 :最厉害的学生结构体




最厉害的学生
现有N名同学参加了期末考试,并且获得了每名同学的信息:

1 姓名(不超过8个字符的仅有英文小写字母的字符串)
2 语文、数学、英语成绩(均为不超过150的自然数)。
3 总分最高的学生就是最厉害的。

请输出最厉害的学生各项信息(姓名、各科成绩)。
如果有多个总分相同的学生,输出靠前的那位。

输入格式
1 第一行输入一个正整数 N,表示学生个数。
2 第二行开始,往下N行,对于每一行首先先输入一个字符串表示学生姓名,
再输入三个自然数表示语文、数学、英语的成绩。
均用空格相隔。

输入格式:最厉害的学生

#include<iostream>
using namespace std;

const int maxn = 1000;

struct Student{
    string name;
    int chinese;
    int math;
    int english;
    int getsum(){
       return chinese+math+english; 
    }
};

int n;
Student s[maxn];  // s 是一个包含多个 Student 对象的数组

int main(){
    cin >> n;    
    int best = 1;

    for (int i=1; i <=n; ++i){
        cin >> s[i].name >> s[i].chinese >> s[i].math >> s[i].english;
        if (s[i].getsum()>s[best].getsum()){
            best = i;
        }
    }
    
    cout << s[best].name << " " << s[best].chinese << " " << s[best].math << " " << s[best].english << endl; 
    return 0;
}

假设输入

3
Alice 80 90 70
Bob 85 95 75
Charlie 70 80 60

输出为 Bob 85 95 75

www.runoob.com
https://www.runoob.com/cplusplus/cpp-struct.html

一、结构体介绍 (语法-定义变量方法-初始化)
(0)语法规则
(1)结构体声明时,不定义变量(对象)
(2)结构体声明时,定义一个变量
(3)结构体声明时,定义多个变量
初始化

(1) 列表初始化
1.1 结构体声明时初始化
1.2 声明变量时初始化
(2) 构造函数初始化
2.1 结构体定义时直接声明并初始化对象
2.2 定义对象时使用构造函数初始化

(0) 语法规则
结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起
与类(class)类似,结构体允许你定义成员变量和成员函数。

为了定义结构,您必须使用 struct 语句。
struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:
 

struct type_name {
member_type1 member_name1;
member_type2 member_name2;
member_type3 member_name3;
.
.
} object_names;

type_name 是结构体类型的名称,
member_type1 member_name1 是标准的变量定义,比如 int i; 或者 float f; 或者其他有效的变量定义。
在结构定义的末尾,最后一个分号之前,您可以指定
(1)不定义变量、(2)定义一个变量、(3)定义多个结构变量,这是可选的。

(1)下面是声明一个结构体类型 Books,不定义变量(不定义结构体的对象):

struct Books
{
   char title[50];
   char author[50];
   char subject[100];
   int book_id;
};  // 结构体定义结束,没有定义变量

int main()
{
    Books book1;  // 单独声明变量 

    // 初始化变量
    strcpy(book1.title, "C++ Primer");
    strcpy(book1.author, "Stanley B. Lippman");
    strcpy(book1.subject, "Programming");
    book1.book_id = 1; 

    return 0;
}

(2)下面是声明一个结构体类型 Books,定义一个变量为 book(结构体的对象):

指定一个结构变量

struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book;

(3)定义多个结构变量,后面是初始化

struct Books
{
   char title[50];
   char author[50];
   char subject[100];
   int book_id;
} book1, book2;  // 同时声明 book1 和 book2

int main()
{
    // 初始化 book1
    strcpy(book1.title, "C++ Primer");
    strcpy(book1.author, "Stanley
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

计算机视觉-Archer

图像分割没有团队的同学可加群

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

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

打赏作者

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

抵扣说明:

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

余额充值