アプリケーション_YCOJ C ++の構造

構造は、構造体によって定義され、自己定義されたものです。彼には、
あなたは、このようなようになどint型、文字列、文字、ブール値、およびなど、たくさんのことを保持することができます。
以下のような:

    struct a{
    string name;
    int a;
    int b;
    };
    ……
    a s;
    cin >> s.name;


    代码示范:   
    例题:
    身高排序

説明

右に左には1〜Nの番号が付けられてからのN学生は、行にあります。

これは今、高さの一種に従い、nビットの背が高くはなく、学生を提供します。今、これらの学生は、右の学生が高く、学生の左側に低い、低レベルから高レベルに高さの順番を並べ替えるために実行する必要があります。2人の学生と同じ高さならば、これら2人の学生の相対的な順序は変更すべきではありません。

左から右への留学生の数の後に出力をソートしてください。

入力

ライン入力整数n(1≤n≤1000)。

入力nは整数の次の行は、順次左から右への学生の高さは、各生徒の高さ300以下を表します。

出力

出力ラインnは整数は、スペースで区切られた2つの数字は、行の最後には、余分なスペースがありません。

並べ替えの後、左から右に学生の数を表します。

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;
}
注:结构体排序需要写一个排序函数。
这就是结构体。

標準の終わり:
ここに画像を挿入説明

                                             END

おすすめ

転載: www.cnblogs.com/herobrine-life/p/10959465.html
おすすめ