程序来源:董老师一本通
章 节:7.2.2 结构体的使用
程序名称:第七章 文件和机构体 141页
作 者:tiaya@qq.com
运行测试:通过
/********************************
* 程序来源:董老师一本通
* 章 节:7.1 文件操作
* 程序名称:第七章 文件和机构体 136页
* 作 者:tiaya@qq.com
* 运行测试:通过
*******************************/
//#include <bits/stdc++.h> //万能头文件,不建议使用
#include <iostream>
#include <cstdio>
#include <algorithm>
//struct
struct node{
int data; //数据
int index; //下标
int rank; //排名
} nd[1001];
bool cmp_index(node x, node y) {
return x.index < y.index;
}
bool cmp_rank(node x,node y) {
return x.data > y.data;
}
using namespace std;
//main() star
int main() {
//code here
int n;
cout << "please input nums(eg. 6):\n";
cin >> n;
for(int i=1; i<=n; i++) {
cin >> nd[i].data;
nd[i].index = i; //记录序号
}
//sort data
sort(nd+1, nd+1+n, cmp_rank);
for(int j=1; j<=n; j++) {
nd[j].rank = j;
}
//sort index
sort(nd+1, nd+1+n, cmp_index);
//cout
cout <<"data:";
for(int j=1; j<=n; j++) {
cout << nd[j].data <<",";
}
cout <<endl;
cout <<"index:";
for(int j=1; j<=n; j++) {
cout << nd[j].index <<",";
}
cout <<endl;
cout <<"rank:";
for(int j=1; j<=n; j++) {
cout << nd[j].rank <<",";
}
cout <<endl;
return 0;
}
测试:
输入数据:
please input nums(eg. 6):
6
23 56 47 8 12 54
输出数据:
data:23,56,47,8,12,54,
index:1,2,3,4,5,6,
rank:4,1,3,6,5,2,
--------------------------------
Process exited after 7.649 seconds with return value 0
请按任意键继续. . .
网友评论