第七章 文件和结构体 7.2 结构体 P141

2019-12-18  本文已影响0人  壹顾倾城

程序来源:董老师一本通
章 节: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
请按任意键继续. . .
上一篇 下一篇

猜你喜欢

热点阅读