美文网首页
C++结构体的应用_YCOJ

C++结构体的应用_YCOJ

作者: 程序员小伙伴 | 来源:发表于2019-02-20 19:34 被阅读2次

    结构体是一种自定义的东西,用struct来定义。在他里面,

    可以装许多东西,比如int,string,char,bool等等等等。

    如:

    struct a{

    string name;

    int a;

    int b;

    };

    ……

    a s;

    cin >> s.name;

    代码示范:

    例题:

    身高排序

    Description

    有 n 个同学排成一排,从左到右依次编号为 1~n。

    现在给出了这个 n 位同学的身高,但是并不是按照高矮排序的。现在这些同学需要按照身高从矮到高的顺序重新排列,矮的同学在左边,高的同学在右边。如果两个同学身高相同,那么这两个同学的相对顺序不应该发生变化。

    请你输出排序以后从左到右同学的编号。

    Input

    输入一个行一个整数 n(1≤n≤1000)。

    接下来一行输入 n 个整数,依次表示从左到右的同学的身高,每个同学身高小于等于 300。

    Output

    一行输出 n 个整数,两个数中间用空格隔开,行末不要有多余空格。

    表示重新排列以后从左到右的同学的编号。

    Sample Input 1

    5

    156 178 145 190 156

    Sample Output 1

    3 1 5 2 4

    解题代码:

    cpp

    #include<iostream>

    #include<algorithm>

    using namespace std;

    struct student{

    int h;

    int name;//name=编号

    };//定义结构体

    bool cmp(student x,student y){

    return x.h<y.h;

    }//排序函数

    int main(){

    int n,b=0;

    cin >>n;//人数

    student a[n];//定义student变量a

    for (int i=0;i<n;i++){

    b++;

    a[i].name=b;

    }

    for (int i=0;i<n;i++){

    cin >>a[i].h;

    }

    stable_sort(a,a+n,cmp);//更稳定的sort排序

    for(int i=0;i<=n-2;i++){

    cout << a[i].name<<" ";//为了去末尾空格,最后一个单独输出

    }

    cout << a[n-1].name;//输出最后一个

    return 0;

    }

    注:结构体排序需要写一个排序函数。

    这就是结构体。

    标准结尾:

    有兴趣一起交流学习c/c++的小伙伴可以加群:953788065,里面有大神会给予解答,也会有许多的资源可以供大家学习分享,欢迎大家前来一起学习进步!

    相关文章

      网友评论

          本文标题:C++结构体的应用_YCOJ

          本文链接:https://www.haomeiwen.com/subject/ankkyqtx.html