7 5 實驗11 3 結構排序 100 分

2021-10-19 08:54:25 字數 1518 閱讀 6764

7-5 實驗11_3_結構排序 (100 分)

有n名學生,每個學生的屬性包括姓名與總成績。已知學生的姓名與總成績,你的任務是將學生的資訊按照以下方式排序:首先比較總成績,總成績高的在前面,總成績低的在後面,當總成績相同時,你要比較學生的姓名,姓名字典序小的同學在前面,姓名字典序大的同學在後面(ascii碼順序)。n的範圍是1—100;學生的姓名中只能包含大小寫字母,不會超過20個字元;總成績為整數。

要求:在本題中,你要設計乙個結構來儲存學生的資訊。在此結構中,需要有乙個字元陣列來儲存姓名,乙個整型變數儲存總成績。 輸入與輸出要求:輸出:。。

輸入格式:

首先輸入乙個正整數n,代表學生的數量,1<=n<=100;每名學生的資訊按照姓名、總成績的順序輸入(空格分開),每名學生資訊佔一行。具體格式見樣例。

輸出格式:

n名學生的資訊,姓名佔一行,總成績佔一行,輸出順序要按照題目的要求,每名同學的資訊後都再輸出乙個空行。 注意:每名同學的資訊後都再輸出乙個空行。

輸入樣例:

4alberteinstein 1328

georgewalkerbush 860

liumengmeng 1475

billgates 1328

輸出樣例:

name:liumengmeng

total:1475

name:alberteinstein

total:1328

name:billgates

total:1328

name:georgewalkerbush

total:860

#include

struct student

;typedef

struct student student;

void

getdata

(student*);

void

printstudent

(student*);

intmain

(int argc,

char

const

*ar**)

for(i=

0;i) order[i]

=i;for

(i=1

;i)for

(j=0

;j(list[order[i]

].sum==list[order[j]

].sum)if(

strcmp

(list[order[i]

].name,list[order[j]

].name)

<0)

}for

(i=0

;i)printstudent

(&list[order[i]])

;return0;

}void

getdata

(student *student)

void

printstudent

(student *student)

7 5 實驗11 3 結構排序 100分

有n名學生,每個學生的屬性包括姓名與總成績。已知學生的姓名與總成績,你的任務是將學生的資訊按照以下方式排序 首先比較總成績,總成績高的在前面,總成績低的在後面,當總成績相同時,你要比較學生的姓名,姓名字典序小的同學在前面,姓名字典序大的同學在後面 ascii碼順序 n的範圍是1 100 學生的姓名中...

7 5 實驗11 3 結構排序 100分

有n名學生,每個學生的屬性包括姓名與總成績。已知學生的姓名與總成績,你的任務是將學生的資訊按照以下方式排序 首先比較總成績,總成績高的在前面,總成績低的在後面,當總成績相同時,你要比較學生的姓名,姓名字典序小的同學在前面,姓名字典序大的同學在後面 ascii碼順序 n的範圍是1 100 學生的姓名中...

C 實驗11 3 結構排序

題目描述 有n名學生,每個學生的屬性包括姓名與總成績。已知學生的姓名與總成績,你的任務是將學生的資訊按照以下方式排序 首先比較總成績,總成績高的在前面,總成績低的在後面,當總成績相同時,你要比較學生的姓名,姓名字典序小的同學在前面,姓名字典序大的同學在後面 ascii碼順序 n的範圍是1 100 學...