#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==