结构体(第一阶段)

【问题描述】有以下学生信息,使用结构体数组存储这些信息

struct student{
int num;//学号
int computer; //计算机成绩
}s[5]={{101,75},{103,80},{104,85},{106,90}};

再输入一条新记录,插入到结构体数组中,让5条记录按计算机成绩升序有序。
【输入形式】2个数据都使用空格分隔
【输出形式】分五行输出数据,每行数据均使用空格分隔
【输入样例】102 88
【输出样例】每行数据均使用一个空格分隔,分五行输出
101 75
103 80
104 85
102 88
106 90
原文链接:https://blog.csdn.net/jshsjjn/article/details/125351925

#include<bits/stdc++.h>
using namespace std;
struct student{
    int num;
    int computer;
};

//升序函数
bool compare(student a,student b)
{
    return a.computer<b.computer;
}
//怎么插入呢
int main()
{
    int t1,t2;
    cin>>t1>>t2;
    student s[6]={{101,75},{103,80},{104,85},{106,90},{t1,t2}};
    sort(s,s+5,compare);
    for(int i=0;i<5;i++)//这里要从0开始
    {
        cout<<s[i].num<<" "<<s[i].computer<<endl;
    }


}

课后小结:

  • 突然想起自己过分愚笨已经忘记结构体怎么插入的,但是搜索了一下是需要队列形式插入,就简单放下代码叭,下次就要学习队列的相关知识了。
    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    struct student{
        int num;
        int computer;
    };
    
    //升序函数
    bool compare(student a, student b)
    {
        return a.computer < b.computer;
    }
    
    int main()
    {
        vector<student> s = {{101,75},{103,80},{104,85},{106,90}}; // 使用 vector 代替数组,并初始化
        int t1, t2;
        cin >> t1 >> t2;
        s.push_back({t1, t2}); // 在 vector 的末尾插入新元素
        sort(s.begin(), s.end(), compare);
        for (int i = 0; i < s.size(); i++) // 修改循环终止条件为 vector 的大小
        {
            cout << s[i].num << " " << s[i].computer << endl;
        }
        return 0;
    }
    

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值