- 培训
结构体 例子
- 2025-3-2 21:05:33 @
#include <bits/stdc++.h>
using namespace std;
/*
学生 名字 年龄 分数
小明 4 9
小红 6 7
小鹿 8 10
小猫 7 8
string s[10];
int age[10];
int sor[10];
下标来关联在一起
目的就是让这三个属性 绑在一块 变成一个新整体
*/
//关键字 自己去定义一个复合变量类型
struct stu { //stu 他就是一个新的变量类型 属性 你想用什么就可以去定义什么
string name; //成员变量 属性
int age;
int sor;
int num;
}; // 注意这个分号!这里其实也可以定义结构体的变量、数组
bool cmp(stu a,stu b){ //ab两个要排的结构体要怎么排
return a.age > b.age; //只按年龄大的排
}
//年龄大的排前面 如果年龄一样 分数高的排前面
bool cmp1(stu a,stu b){ //ab两个要排的结构体要怎么排
if(a.age == b.age) {
return a.sor>b.sor;
}else{
return a.age > b.age; //只按年龄大的排
}
}
int main(){
//变量类型 变量名 ;
// stu s; //s 他就是一个stu类型的变量
// cin>>s.name>>s.age>>s.sor; //.就是的 s的名字 s的年龄
// cout << s.sor<<" "<<s.age<<" "<<s.name;
stu arr[15]; //数组里的每一个元素 都是一个学生变量 arr[1]下标为1的学生
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>arr[i].name>>arr[i].age>>arr[i].sor; //通过数组输入
arr[i].num = i;
}
//结构体数组是可以排序的 但是注意 结构体排序必须给cmp函数 必须告诉他该怎么排
sort(arr+1,arr+1+n,cmp1); //按年龄从大到小排序
for(int i=1;i<=n;i++){
cout << arr[i].name<<" "<<arr[i].age<<" "<<arr[i].sor<<endl;
}
return 0;
}
0 条评论
目前还没有评论...
信息
- ID
- 243
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 16
- 已通过
- 14
- 上传者