#include <stdio.h>
#include <string.h>
// Câu 1: Xây dựng kiểu dữ liệu cấu trúc để lưu trữ
struct SinhVien {
int tt;
char hoTen[50];
float toan;
float van;
float anh;
float tongDiem;
char xepLop;
char khenThuong[50]; // Không có quy tắc nên sẽ để trống
};
int main() {
// Câu 2: Khởi tạo dữ liệu
// Khởi tạo mảng 7 sinh viên
struct SinhVien dsLop[7];
int n = 7;
// Khởi tạo dữ liệu gốc từ bảng
// Dữ liệu cho sinh viên 1
strcpy(dsLop
[0].
hoTen, "Nguyen Van A"); dsLop[0].toan = 8;
dsLop[0].van = 7;
dsLop[0].anh = 8;
// Dữ liệu cho sinh viên 2
strcpy(dsLop
[1].
hoTen, "Tran Thi B"); dsLop[1].toan = 7;
dsLop[1].van = 8;
dsLop[1].anh = 9;
// Dữ liệu cho sinh viên 3
strcpy(dsLop
[2].
hoTen, "Le Van C"); dsLop[2].toan = 6;
dsLop[2].van = 4;
dsLop[2].anh = 7;
// Dữ liệu cho sinh viên 4
strcpy(dsLop
[3].
hoTen, "Hoang Thi D"); dsLop[3].toan = 3;
dsLop[3].van = 5;
dsLop[3].anh = 7;
// Dữ liệu cho sinh viên 5
strcpy(dsLop
[4].
hoTen, "Vu Van E"); dsLop[4].toan = 6;
dsLop[4].van = 5;
dsLop[4].anh = 6;
// Dữ liệu cho sinh viên 6
strcpy(dsLop
[5].
hoTen, "Bui Thi F"); dsLop[5].toan = 9;
dsLop[5].van = 8;
dsLop[5].anh = 8;
// Dữ liệu cho sinh viên 7
strcpy(dsLop
[6].
hoTen, "Thai Van E"); dsLop[6].toan = 9;
dsLop[6].van = 8;
dsLop[6].anh = 9;
// Câu 3: Điền các cột trống và thống kê
int countA = 0;
int countB = 0;
int countC = 0;
for (int i = 0; i < n; i++) {
// 1. Điền số thứ tự
dsLop[i].tt = i + 1;
// 2. Tính Tổng điểm
dsLop[i].tongDiem = (dsLop[i].toan * 2) + (dsLop[i].van * 2) + dsLop[i].anh;
// 3. Xếp lớp
if (dsLop[i].tongDiem >= 35) {
dsLop[i].xepLop = 'A';
countA++;
} else if (dsLop[i].tongDiem >= 30) {
dsLop[i].xepLop = 'B';
countB++;
} else {
dsLop[i].xepLop = 'C';
countC++;
}
// 4. Khen thưởng (để trống vì không có quy tắc)
strcpy(dsLop
[i
].
khenThuong, ""); }
// Câu 4: In ra màn hình bảng thống kê
printf("\t\t\t\tTHONG TIN THONG KE\n"); printf("--------------------------------------------------------------------------------------------\n"); printf("| %-3s | %-15s | %-5s | %-5s | %-5s | %-10s | %-8s | %-12s |\n", "TT", "Ho ten", "Toan", "Van", "Anh", "Tong diem", "Xep lop", "Khen thuong");
printf("--------------------------------------------------------------------------------------------\n");
for (int i = 0; i < n; i++) {
printf("| %-3d | %-15s | %-5.1f | %-5.1f | %-5.1f | %-10.1f | %-8c | %-12s |\n", dsLop[i].tt,
dsLop[i].hoTen,
dsLop[i].toan,
dsLop[i].van,
dsLop[i].anh,
dsLop[i].tongDiem,
dsLop[i].xepLop,
dsLop[i].khenThuong);
}
printf("--------------------------------------------------------------------------------------------\n");
// In phần thống kê số học sinh
printf("\nThong ke so hoc sinh:\n"); printf("Lop A: %d hoc sinh.\n", countA
); printf("Lop B: %d hoc sinh.\n", countB
); printf("Lop C: %d hoc sinh.\n", countC
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCi8vIEPDonUgMTogWMOieSBk4buxbmcga2nhu4N1IGThu68gbGnhu4d1IGPhuqV1IHRyw7pjIMSR4buDIGzGsHUgdHLhu68Kc3RydWN0IFNpbmhWaWVuIHsKICAgIGludCB0dDsKICAgIGNoYXIgaG9UZW5bNTBdOwogICAgZmxvYXQgdG9hbjsKICAgIGZsb2F0IHZhbjsKICAgIGZsb2F0IGFuaDsKICAgIGZsb2F0IHRvbmdEaWVtOwogICAgY2hhciB4ZXBMb3A7CiAgICBjaGFyIGtoZW5UaHVvbmdbNTBdOyAvLyBLaMO0bmcgY8OzIHF1eSB04bqvYyBuw6puIHPhur0gxJHhu4MgdHLhu5FuZwp9OwoKaW50IG1haW4oKSB7CiAgICAvLyBDw6J1IDI6IEto4bufaSB04bqhbyBk4buvIGxp4buHdQogICAgLy8gS2jhu59pIHThuqFvIG3huqNuZyA3IHNpbmggdmnDqm4KICAgIHN0cnVjdCBTaW5oVmllbiBkc0xvcFs3XTsKICAgIGludCBuID0gNzsKCiAgICAvLyBLaOG7n2kgdOG6oW8gZOG7ryBsaeG7h3UgZ+G7kWMgdOG7qyBi4bqjbmcKICAgIC8vIEThu68gbGnhu4d1IGNobyBzaW5oIHZpw6puIDEKICAgIHN0cmNweShkc0xvcFswXS5ob1RlbiwgIk5ndXllbiBWYW4gQSIpOwogICAgZHNMb3BbMF0udG9hbiA9IDg7CiAgICBkc0xvcFswXS52YW4gPSA3OwogICAgZHNMb3BbMF0uYW5oID0gODsKCiAgICAvLyBE4buvIGxp4buHdSBjaG8gc2luaCB2acOqbiAyCiAgICBzdHJjcHkoZHNMb3BbMV0uaG9UZW4sICJUcmFuIFRoaSBCIik7CiAgICBkc0xvcFsxXS50b2FuID0gNzsKICAgIGRzTG9wWzFdLnZhbiA9IDg7CiAgICBkc0xvcFsxXS5hbmggPSA5OwoKICAgIC8vIEThu68gbGnhu4d1IGNobyBzaW5oIHZpw6puIDMKICAgIHN0cmNweShkc0xvcFsyXS5ob1RlbiwgIkxlIFZhbiBDIik7CiAgICBkc0xvcFsyXS50b2FuID0gNjsKICAgIGRzTG9wWzJdLnZhbiA9IDQ7CiAgICBkc0xvcFsyXS5hbmggPSA3OwoKICAgIC8vIEThu68gbGnhu4d1IGNobyBzaW5oIHZpw6puIDQKICAgIHN0cmNweShkc0xvcFszXS5ob1RlbiwgIkhvYW5nIFRoaSBEIik7CiAgICBkc0xvcFszXS50b2FuID0gMzsKICAgIGRzTG9wWzNdLnZhbiA9IDU7CiAgICBkc0xvcFszXS5hbmggPSA3OwoKICAgIC8vIEThu68gbGnhu4d1IGNobyBzaW5oIHZpw6puIDUKICAgIHN0cmNweShkc0xvcFs0XS5ob1RlbiwgIlZ1IFZhbiBFIik7CiAgICBkc0xvcFs0XS50b2FuID0gNjsKICAgIGRzTG9wWzRdLnZhbiA9IDU7CiAgICBkc0xvcFs0XS5hbmggPSA2OwoKICAgIC8vIEThu68gbGnhu4d1IGNobyBzaW5oIHZpw6puIDYKICAgIHN0cmNweShkc0xvcFs1XS5ob1RlbiwgIkJ1aSBUaGkgRiIpOwogICAgZHNMb3BbNV0udG9hbiA9IDk7CiAgICBkc0xvcFs1XS52YW4gPSA4OwogICAgZHNMb3BbNV0uYW5oID0gODsKCiAgICAvLyBE4buvIGxp4buHdSBjaG8gc2luaCB2acOqbiA3CiAgICBzdHJjcHkoZHNMb3BbNl0uaG9UZW4sICJUaGFpIFZhbiBFIik7CiAgICBkc0xvcFs2XS50b2FuID0gOTsKICAgIGRzTG9wWzZdLnZhbiA9IDg7CiAgICBkc0xvcFs2XS5hbmggPSA5OwoKCiAgICAvLyBDw6J1IDM6IMSQaeG7gW4gY8OhYyBj4buZdCB0cuG7kW5nIHbDoCB0aOG7kW5nIGvDqgogICAgaW50IGNvdW50QSA9IDA7CiAgICBpbnQgY291bnRCID0gMDsKICAgIGludCBjb3VudEMgPSAwOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgLy8gMS4gxJBp4buBbiBz4buRIHRo4bupIHThu7EKICAgICAgICBkc0xvcFtpXS50dCA9IGkgKyAxOwoKICAgICAgICAvLyAyLiBUw61uaCBU4buVbmcgxJFp4buDbQogICAgICAgIGRzTG9wW2ldLnRvbmdEaWVtID0gKGRzTG9wW2ldLnRvYW4gKiAyKSArIChkc0xvcFtpXS52YW4gKiAyKSArIGRzTG9wW2ldLmFuaDsKCiAgICAgICAgLy8gMy4gWOG6v3AgbOG7m3AKICAgICAgICBpZiAoZHNMb3BbaV0udG9uZ0RpZW0gPj0gMzUpIHsKICAgICAgICAgICAgZHNMb3BbaV0ueGVwTG9wID0gJ0EnOwogICAgICAgICAgICBjb3VudEErKzsKICAgICAgICB9IGVsc2UgaWYgKGRzTG9wW2ldLnRvbmdEaWVtID49IDMwKSB7CiAgICAgICAgICAgIGRzTG9wW2ldLnhlcExvcCA9ICdCJzsKICAgICAgICAgICAgY291bnRCKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZHNMb3BbaV0ueGVwTG9wID0gJ0MnOwogICAgICAgICAgICBjb3VudEMrKzsKICAgICAgICB9CgogICAgICAgIC8vIDQuIEtoZW4gdGjGsOG7n25nICjEkeG7gyB0cuG7kW5nIHbDrCBraMO0bmcgY8OzIHF1eSB04bqvYykKICAgICAgICBzdHJjcHkoZHNMb3BbaV0ua2hlblRodW9uZywgIiIpOwogICAgfQoKICAgIC8vIEPDonUgNDogSW4gcmEgbcOgbiBow6xuaCBi4bqjbmcgdGjhu5FuZyBrw6oKICAgIHByaW50ZigiXHRcdFx0XHRUSE9ORyBUSU4gVEhPTkcgS0VcbiIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CiAgICBwcmludGYoInwgJS0zcyB8ICUtMTVzIHwgJS01cyB8ICUtNXMgfCAlLTVzIHwgJS0xMHMgfCAlLThzIHwgJS0xMnMgfFxuIiwKICAgICAgICAgICAiVFQiLCAiSG8gdGVuIiwgIlRvYW4iLCAiVmFuIiwgIkFuaCIsICJUb25nIGRpZW0iLCAiWGVwIGxvcCIsICJLaGVuIHRodW9uZyIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoInwgJS0zZCB8ICUtMTVzIHwgJS01LjFmIHwgJS01LjFmIHwgJS01LjFmIHwgJS0xMC4xZiB8ICUtOGMgfCAlLTEycyB8XG4iLAogICAgICAgICAgICAgICBkc0xvcFtpXS50dCwKICAgICAgICAgICAgICAgZHNMb3BbaV0uaG9UZW4sCiAgICAgICAgICAgICAgIGRzTG9wW2ldLnRvYW4sCiAgICAgICAgICAgICAgIGRzTG9wW2ldLnZhbiwKICAgICAgICAgICAgICAgZHNMb3BbaV0uYW5oLAogICAgICAgICAgICAgICBkc0xvcFtpXS50b25nRGllbSwKICAgICAgICAgICAgICAgZHNMb3BbaV0ueGVwTG9wLAogICAgICAgICAgICAgICBkc0xvcFtpXS5raGVuVGh1b25nKTsKICAgIH0KICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIC8vIEluIHBo4bqnbiB0aOG7kW5nIGvDqiBz4buRIGjhu41jIHNpbmgKICAgIHByaW50ZigiXG5UaG9uZyBrZSBzbyBob2Mgc2luaDpcbiIpOwogICAgcHJpbnRmKCJMb3AgQTogJWQgaG9jIHNpbmguXG4iLCBjb3VudEEpOwogICAgcHJpbnRmKCJMb3AgQjogJWQgaG9jIHNpbmguXG4iLCBjb3VudEIpOwogICAgcHJpbnRmKCJMb3AgQzogJWQgaG9jIHNpbmguXG4iLCBjb3VudEMpOwoKICAgIHJldHVybiAwOwp9Cg==