<1>定義的方法
struct node // 用strut定義乙個結構體,node是結構體的名字,可以自己瞎取。
p[1000];
//這樣你就定義了乙個神奇的陣列!!沒錯,它就是node型陣列!!
上面的**還在結構體的末尾定義了乙個該型的陣列,其實這個陣列不一定要有,而且也可以在主函式中定義,但是感覺上用的比較多,而且這樣定義比在主函式中定義整潔。。。。。大概就是這樣吧,反正用不用都可以就對了。
除此之外,結構體中也可以放入陣列,string之類的東西。
<2>一些奇奇怪怪的操作
通常為了方便理解,我們會把定義結構體命名成你原本想表達的意思,但這有時會讓你定義的結構體名字很長。比如:你要在結構體裡儲存乙個班級所有學生的姓名和成績,你就可以把結構體命名為student,但是你覺得後面用到結構體時輸student很麻煩,於是你想把它簡化成stu,你可以通過以下**實現
typedef
struct student //用typedef來建立乙個結構體。
stu;
//可以在這裡給你的結構體改名。
這個**裡用到了typedef,如果用到了這個。。。「東西」(我也不知道該把它叫啥),其實你也可以不在struct後給結構體命名,你可以像這樣
typedef
struct
student;
//直接在末尾命名。
struct student
p[100];
typedef student stu;
//像這樣改名也是可以的。
emmm,就這麼多吧,結構體真沒啥好說的。
其實就是要用bool型重新寫個函式(一般叫cmp),來明確排序規則,然後想都別想用sort就好了,嘿嘿qwq
這個寫個例題,自己體會好了,感覺上沒啥好講的。。。
例題乙個班級有n個學生,輸入這n個學生的姓名,分數,按分數降序排序,若分數相同,則按出現順序公升序排序,輸出排序後的學生姓名。
#include
using
namespace std;
struct student //定義結構體。
p[1000];
typedef student stu;
//改名。
bool
cmp(stu x, stu y)
//定義sort的方法。
intmain()
sort
(p, p + n, cmp)
;for
(int i =
0; i < n; i ++
)return0;
}
這應該是有關結構體排序最簡單的一種題目,難的題目會在定義sort方式時給出很多很多的邏輯問題,也是在做此類題目時,最容易出錯,最需要注意的一點(至少我是常在這出錯。。。) 結構體排序
description excel可以對一組紀錄按任意指定列排序。現請你編寫程式實現類似功能。input 測試輸入包含若干測試用例。每個測試用例的第1行包含兩個整數 n 100000 和 c,其中 n 是紀錄的條數,c 是指定排序的列號。以下有 n 行,每行包含一條學生紀錄。每條學生紀錄由學號 6位...
結構體排序
貪心演算法中不想交區間問題 題目 解題思路 定義兩個變數,乙個記為結束時間,乙個記為區間數。將結束時間排序,若相同,就將開始時間從大到小排序 若不同,就將結束時間按從小到大排序。這樣第乙個區間是確定的,再比較下乙個區間的開始時間與第乙個區間結束時間的大小,大於則加一。再將結束時間改變即可,繼續迴圈。...
結構體排序
結構體排序 本關任務 有n個學生的資訊 包括學號,姓名,成績 要求按照成績的高低順序輸出學生的資訊。補充 要求按照成績的高低順序輸出學生的資訊。平台會對你編寫的 進行測試,比對你輸出的數值與實際正確數值,只有所有資料全部計算正確才能通過測試 測試輸入 5 10101 zhang 78 10103 w...