首页 > 代码库 > 结构体
结构体
哦,今天学了结构体哦,先贴代码吧,搞懂了再说
#include <algorithm> #include <iostream> #include <string.h> using namespace std; const int N=50; struct stu{ char a[10]; int b; }; stu ch[N]; bool cmp(stu a1, stu b1) { int k=strcmp(a1.a, b1.a); if(k>0) return false; if(k<0) return true; else return a1.b < b1.b; } int main() { int n; cin >> n; for(int i=0; i<n; i++) cin >> ch[i].a >> ch[i].b; sort(ch, ch+n, cmp); for(int i=0; i<n; i++) cout << ch[i].a << " " << ch[i].b << endl; return 0; }
#include <algorithm> #include <iostream> #include <string.h> using namespace std; const int N=50; struct stu{ int a, b; bool operator < (const stu& other) const { return a == other.a ? b < other.b : a < other.a; } }; stu p[N]; int main(){ int n; cin >> n; for(int i=0; i<n; i++) cin >> p[i].a >> p[i].b; sort(p, p+n); for(int i=0; i<n; i++) cout << p[i].a << " " << p[i].b << endl; return 0; }
由此强行做一题水题实践
Problem Description:
在一个平面坐标系上有很多的点,你的任务是将它们按到原点的距离从近到远排序。
Input:
输入包含多组数据。每组数据第一行一个n,代表点的数量。接下来有n行,每行两个整数x,y,代表点的坐标。(n<=1000,0<=x,y<=10000)
Output:
对于每组数据,输出n行,每行两个整数,空格隔开。如果出现距离一样的,优先输出x坐标小的。
Sample Input:
3 1 2 2 3 3 2
Sample Output:
1 2 2 3 3 2
#include<iostream> #include<algorithm> using namespace std; struct stu{ int a, b; }; stu ch[1002]; bool cmp(stu x, stu y){ if(x.a*x.a+x.b*x.b == y.a*y.a+y.b*y.b) return x.a < y.a; return x.a*x.a+x.b*x.b < y.a*y.a+y.b*y.b; } int main() { int n; while(cin>>n) { for(int i=0; i<n; i++) cin >> ch[i].a>> ch[i].b; sort(ch, ch+n, cmp); for(int i=0; i<n; i++) cout << ch[i].a << " " <<ch[i].b << endl; } return 0; }
结构体
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。