6 學生陣列排序

2021-10-19 07:33:22 字數 1596 閱讀 9184

輸入3個學生的姓名和英語、數學成績,需要求每個學生的總成績並對3個學生按總成績降序輸出,請編寫乙個類student,實現該功能。

student類的資料成員包括(但不限於)name(姓名,型別為string)、math(數學)、english(英語)。要求用成員函式實現以下功能:

1、使用建構函式給各屬性賦初值

2、呼叫例項方法計算學生總成績

3、其它必要的功能

另設計乙個函式對學生按總成績降序排列,並在main函式中輸出學生資訊。

main函式的實現參考如下**,請設計student類和sortstudent函式。

main函式中宣告了乙個陣列,包含三個物件,然後輸入必要資訊,給三個物件賦值並計算總成績,之後對陣列排序並按總成績降序輸出學生姓名及其成績。

對於兩個總成績相同的學生,排序後不改變他們原來的順序。

int main()

student s[3],temp;

string sname;//或char sname[20];

int smath, senglish;

int i;

for(i=0; i<3; i++)

cin>>sname>>smath>>senglish;

s[i]=student(sname, smath, senglish);

s[i].calctotal();

sortstudent(s, 3);

for(i=0;i<3;i++)

cout輸入三行,表示三個學生的資訊,每一行包括學生姓名、數學成績、英語成績,中間以空格分隔。

成績為0到100之間的整數。

輸出三行,按總成績降序輸出學生姓名及其數學成績、英語成績、總成績。

如果有兩個學生總成績相同,那麼原來排在前的學生先輸出。

john 80 90

kevy 85 90

lucy 90 80

kevy 85 90 175

john 80 90 170

lucy 90 80 170

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

class student ;

student::student(void)

void student::calctotal()

student::student(string s, int x, int y)

int student::getmath()

int student::getenglish()

int student::gettotal()

string student::getname()

void sortstudent(student a,int n)

int main()

sortstudent(s, 3);

for (i = 0; i < 3; i++)

return 0;

}

6 合併排序陣列

題目要求 合併兩個排序的整數陣列甲和乙變成乙個新的陣列。樣例給出 a 1,2,3,4 b 2,4,5,6 返回 1,2,2,3,4,4,5,6 挑戰 你能否優化你的演算法,如果其中乙個陣列很大而另乙個陣列很小?實現 使用向量,和其中的的push back函式 class solution publi...

6 合併排序陣列

合併兩個排序的整數陣列a和b變成乙個新的陣列。樣例 給出a 1,2,3,4 b 2,4,5,6 返回 1,2,2,3,4,4,5,6 先上乙個無腦的,可以ac 1 vector mergesortedarray vector a,vector b 6sort a.begin a.end 7retur...

java基礎6 陣列 排序 查詢 多維陣列

陣列 陣列可以存放 多個同一類資料 養雞場 有很多雞 體重各不一樣 怎麼算他們的平均體重 語法 陣列的定義 資料型別 陣列名 new 資料型別 大小 int a new int 5 int a 也可以 還可以 int a 1,2,3,4,5 陣列的引用 陣列名 下標 a 3 public class...