Giải đề thi cấu trúc dữ liệu năm 2013 của lớp CĐTH khóa 5 - Đại học Tây Đô

Giải đề thi cấu trúc dữ liệu năm 2013 của lớp CĐTH khóa 5 - Đại học Tây Đô Đề thi gồm 02 câu, nhưng do câu 2 không có gì khác trong sách lắm nên mình không giải. Chỉ giải câu 1 thôi nhé.

#include <stdio.h>
#include <string.h>
#define MaxLegnth 50
typedef struct List{
int
MSSV[MaxLegnth];
char
HoTen[MaxLegnth][40];
float
DiemTB[MaxLegnth];
int
Last;
};

void
TaoRong(List &L)
{

L.Last = 0;
}

void
Chen(int Ma, char Ten[],float Diem, List &L){
int
p = L.Last;
L.MSSV[p]=Ma;
strcpy(L.HoTen[p],Ten);
// neu chuoi can gan la kieu mang,
// thi phai dung ham strcpy
// strcpy = string copy, cu phap strcpy(dich,nguon);
L.DiemTB[p] = Diem;
L.Last++;
}

void
HienThi(List L){
for
(int i=0;i<L.Last;i++)
printf("%d - %s - %.2f \n",
L.MSSV[i],L.HoTen[i],L.DiemTB[i]
);

}

void
HienThiTN (List L){
for
(int i=0;i<L.Last;i++)
if
(L.DiemTB[i]>=5.0)
printf("%d - %s - %.2f \n",
L.MSSV[i],L.HoTen[i],L.DiemTB[i]
);
}

void
SapXep(List &L){
for
(int i=0;i<L.Last-1;i++)
for
(int j = i+1;j<L.Last;j++)
if
(L.DiemTB[i]<L.DiemTB[j]){
int
ms = L.MSSV[i];
L.MSSV[i]=L.MSSV[j];
L.MSSV[j]=ms;
float
dtb = L.DiemTB[i];
L.DiemTB[i]=L.DiemTB[j];
L.DiemTB[j]=dtb;
char
HoTenTam[40];
strcpy(HoTenTam,L.HoTen[i]);
strcpy(L.HoTen[i],L.HoTen[j]);
strcpy(L.HoTen[j],HoTenTam);
}
}

int
main(){
List L;
TaoRong(L);
Chen(1,"Vuong Huynh Long",10.0,L);
Chen(2,"Hong Hy Quan",1.5333,L);
Chen(3,"Quach Tinh",5.26999,L);
Chen(4,"Duong Qua",4.35,L);
printf("Danh sach SV:\n");
HienThi(L);
printf("Danh sach SV tot nghiep:\n");
HienThiTN(L);
printf("Danh sach SV sap xep theo diem tb giam dan: \n");
SapXep(L);
HienThi(L);
return
0;
}

Bài liên quan

Bài liên quan