结构体运用——sort排序
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。
通俗的来说其实就是,开辟一个新的变量来存储这个变量的不同属性。
可以用来储存不同学生的各科成绩以及总成绩,在这种情况下就可以对结构体中某一特定值来对整个结构体组进行相关的大小排序,且
其中常用到的就是sort排序+cmp函数的运用;
简单的一个题练习:https://www.luogu.com.cn/problem/P5738
1 #include <iostream> 2 #include <string> 3 #include <algorithm> 4 #include <bits/stdc++.h> 5 using namespace std; 6 7 typedef long long ll; 8 9 struct pp { 10 int fs[21] = {0}; 11 double sum = 0; 12 13 } p[101]; 14 15 bool cmp(struct pp x, struct pp y) { 16 return x.sum > y.sum; 17 } 18 19 int main() { 20 int a, b; 21 cin >> a >> b; 22 for (int i = 0; i < a; i++) { 23 for (int j = 0; j < b; j++) { 24 cin >> p[i].fs[j]; 25 p[i].sum += p[i].fs[j]; 26 } 27 sort(p[i].fs, p[i].fs + b); 28 p[i].sum = (p[i].sum - p[i].fs[0] - p[i].fs[b - 1]) / (b - 2) * 1.0; 29 } 30 sort(p, p + a, cmp); 31 // C++中保留小数方式 32 cout << setprecision(2) << fixed << p[0].sum << endl; 33 return 0; 34 }
同时记录一个c++下保留小数的方式,
cout << setprecision(2) << fixed << p[0].sum << endl;
其中setprecision(n)填入想要保留的数字,fixed设置后可以保证保留的小数不会省略末尾的0
同时也可以写成
cout << setprecision(2) << fixed; cout << p[0].sum << endl;
在本程序中集体设置输出保留n位小数(四舍五入)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY