Cần giúp về lập trình C

Có n thí sinh mỗi thí sinh là 1 bản ghi: Họ tên,Điểm,Trường(Có m trường tham gia)
Viết hàm tính tổng điểm của 1 trường.
VD:Danh sách thí sinh:
Thí sinh 1: Họ va tên: A Điểm: 6 Trường:B
Thí sinh 2: Họ va tên:G Điểm: 8 Trường:A
Thí sinh 3: Họ va tên:B Điểm: 6 Trường:B
Thí sinh 4: Họ va tên: H Điểm: 9 Trường:C
Thì sẽ có kết quả là;
Trường:A Tđiểm:8; Trường:B Tđiểm:12; Trường:C Tđiểm:9;
Mọi người chỉ giúp mình thuật toán bài trên với.

Đưa vào struc, sau đó lọc ra Trường rồi cộng điểm lại thôi.

1 Like

Anh có thể hướng dẫn em lọc được không em làm mãi với cái hàm strcmp mà không được.

Dùng struct.

Vd:

Struct Truong
{ 
   char tentruong[30];
   char tenTS[30]; 
   float diem;
} 

Trong hàm viết

Nếu “Truong.tentruong = …” thì tính điểm, lưu vào biến. Xong in ra

tạo m biến lưu điểm tổng của m trường.
for (all phần tử của danh sách)
{

  • đọc “tên trường”, “điểm” của phần tử đang xét
  • switch(tên trường)
    +case “trường A”:
    biến điểm trường A += “điểm”
    break;
  • case “trường M”:

}

in ra thôi

1 Like

Mình không biết tên trường mà bạn.
Chương trình phải cho phép người dùng nhập vào n học sinh thuộc m trường bất kì rồi chương trình sẽ in ra tổng điểm của từng trường.

Làm như DBMS sort phát rồi múc từ trên xuống.

Nếu ko muốn sort thì dùng tree hay hash.

Thì như mình nói, cứ dùng vòng lặp, nếu cứ đúng với trường A, thì cộng dồn điểm, lưu vào biến hay vào mảng gì cũng dc cả. Tương tự với các trường còn lại.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?