c語言用sort對數(shù)組和結(jié)構(gòu)體數(shù)組排序

對數(shù)組排序

//頭文件
#include<algorithm>
using namespace std;

int a[5]={1,3,4,2,5};
sort(a,a+5);//輸出結(jié)果:1 2 3 4 5
//sort默認(rèn)從小到大排序 (升序)

//從大到小排序(降序)
bool cmp(int a,int b)
    return a>b;
sort(a,a+5,cmp);//輸出結(jié)果:5 4 3 2 1
/*如果將cmp函數(shù)大于號改成小于號,即
bool cmp(int a,int b)
    return a<b;
則輸出 1 2 3 4 5,是升序,與默認(rèn)的一樣,所以通常不需要這么做
*/

對結(jié)構(gòu)體排序

struct node
{
    int k,s;
}p[5];//結(jié)構(gòu)體放在函數(shù)前面

bool cmp(node x,node y)
{
    return x.s>y.s;   //根據(jù)結(jié)構(gòu)體中的s降序排序(從大到小) 
}
int main()
{
    for (int i = 0; i < 5; i++)
        scanf("%d%d", &p[i].k, &p[i].s);//輸入結(jié)構(gòu)體數(shù)組
    sort(p, p + 5, cmp);//按結(jié)構(gòu)體中s降序排序
    return 0;
}

結(jié)構(gòu)體數(shù)組簡單用法

有三名同學(xué),他們的數(shù)學(xué)英語成績?nèi)缦卤?/p>

同學(xué) 數(shù)學(xué)成績 英語成績
1號 99 70
2號 77 80
3號 66 90

要求按英語成績從大到小給1號2號3號同學(xué)排序
代碼如下

#include<stdio.h>
#include<algorithm>
using namespace std;

struct node
{
    int math,english;
}p[3];//結(jié)構(gòu)體記錄三個同學(xué)的數(shù)學(xué)英語成績

bool cmp(node x,node y)
{
    return x.english>y.english;   //根據(jù)結(jié)構(gòu)體中的英語成績降序排序(從大到?。?
}
int main()
{
    p[0].math=99,p[0].english=70;//一號同學(xué)的數(shù)學(xué),英語成績
    p[1].math=77,p[1].english=80;//類推
    p[2].math=66,p[2].english=90;
    sort(p, p + 3, cmp);//排序
    for (int i = 0; i < 3; i++)
        printf("第%d號同學(xué)的數(shù)學(xué)成績?yōu)?d,英語成績?yōu)?d\n",i+1, p[i].math, p[i].english);//輸出排序后的結(jié)構(gòu)體數(shù)組
    return 0;
}
/*
輸出結(jié)果:
第1號同學(xué)的數(shù)學(xué)成績?yōu)?6,英語成績?yōu)?0
第2號同學(xué)的數(shù)學(xué)成績?yōu)?7,英語成績?yōu)?0
第3號同學(xué)的數(shù)學(xué)成績?yōu)?9,英語成績?yōu)?0
Press any key to continue
*/
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 數(shù)組在程序設(shè)計中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱...
    朱森閱讀 4,272評論 2 13
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,684評論 0 4
  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評論 3 44
  • 幼兒膳食的基本要求: 1.幼兒膳食應(yīng)包括五類食物,營養(yǎng)齊全、搭配合理。膳食蛋白質(zhì)、脂肪、碳水化合物的重量比接近 1...
    羅文樂閱讀 177評論 0 0
  • 晚上,哥哥都睡下了,小米還是不睡。自己玩圣誕樹的裝飾物。 我:“小米,趕快睡覺吧。” 小米:“我不想睡覺?!?我:...
    琢愛舟閱讀 436評論 0 4

友情鏈接更多精彩內(nèi)容