#include <stdio.h>
#include <string.h>
#define MAX 100
// Cấu trúc lưu thông tin công ty
struct CongTy {
char ten[50];
int soNguoi;
float doanhThu;
float laiRong;
float tiSuat;
float loiNhuanNguoi;
char xepLoai[20];
};
// Hàm tính toán các giá trị
void tinhToan(struct CongTy ds[], int n) {
for (int i = 0; i < n; i++) {
ds[i].tiSuat = (ds[i].laiRong / (ds[i].doanhThu * 1000)) * 100; // vì laiRong triệu USD, doanhThu tỷ USD
ds[i].loiNhuanNguoi = ds[i].laiRong / ds[i].soNguoi;
if (ds[i].doanhThu > 10)
else if (ds[i].doanhThu >= 5)
strcpy(ds
[i
].
xepLoai, "Trung Binh"); else
strcpy(ds
[i
].
xepLoai, "Thap"); }
}
// Hàm in danh sách
void inBang(struct CongTy ds[], int n) {
printf("THONG TIN THONG KE 2023\n"); printf("---------------------------------------------------------------------\n"); printf("TT | Cong ty | So nguoi | Doanh thu | Lai rong | Ti suat | Loi nhuan/nguoi | Xep loai\n"); printf("---------------------------------------------------------------------\n"); for (int i = 0; i < n; i++) {
printf("%-2d | %-14s | %-8d | %-10.2f | %-8.0f | %-7.2f | %-15.4f | %-10s\n", i + 1, ds[i].ten, ds[i].soNguoi, ds[i].doanhThu, ds[i].laiRong,
ds[i].tiSuat, ds[i].loiNhuanNguoi, ds[i].xepLoai);
}
printf("---------------------------------------------------------------------\n"); }
// Hàm thống kê
void thongKe(struct CongTy ds[], int n) {
int maxNguoi = ds[0].soNguoi;
float maxDoanhThu = ds[0].doanhThu;
float maxTiSuat = ds[0].tiSuat;
for (int i = 1; i < n; i++) {
if (ds[i].soNguoi > maxNguoi)
maxNguoi = ds[i].soNguoi;
if (ds[i].doanhThu > maxDoanhThu)
maxDoanhThu = ds[i].doanhThu;
if (ds[i].tiSuat > maxTiSuat)
maxTiSuat = ds[i].tiSuat;
}
printf("So nhan vien dong nhat: %d nguoi\n", maxNguoi
); printf("Doanh thu cao nhat: %.2f ty USD\n", maxDoanhThu
); printf("Ti suat cao nhat: %.2f %%\n", maxTiSuat
); }
int main() {
struct CongTy ds[MAX] = {
{"Vinamilk", 10000, 2.5, 350},
{"Vietcombank", 22000, 1.85, 1100},
{"Vingroup", 50000, 5.3, 260},
{"FPT", 42000, 5.8, 330},
{"Hoa Phat", 30000, 3.2, 210},
{"VietnamAir", 15000, 3.2, 300},
{"Petrovietnam", 60000, 29.2, 2100}
};
int n = 7;
tinhToan(ds, n);
inBang(ds, n);
thongKe(ds, n);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCiNkZWZpbmUgTUFYIDEwMAoKLy8gQ+G6pXUgdHLDumMgbMawdSB0aMO0bmcgdGluIGPDtG5nIHR5CnN0cnVjdCBDb25nVHkgewogICAgY2hhciB0ZW5bNTBdOwogICAgaW50IHNvTmd1b2k7CiAgICBmbG9hdCBkb2FuaFRodTsKICAgIGZsb2F0IGxhaVJvbmc7CiAgICBmbG9hdCB0aVN1YXQ7CiAgICBmbG9hdCBsb2lOaHVhbk5ndW9pOwogICAgY2hhciB4ZXBMb2FpWzIwXTsKfTsKCi8vIEjDoG0gdMOtbmggdG/DoW4gY8OhYyBnacOhIHRy4buLCnZvaWQgdGluaFRvYW4oc3RydWN0IENvbmdUeSBkc1tdLCBpbnQgbikgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBkc1tpXS50aVN1YXQgPSAoZHNbaV0ubGFpUm9uZyAvIChkc1tpXS5kb2FuaFRodSAqIDEwMDApKSAqIDEwMDsgLy8gdsOsIGxhaVJvbmcgdHJp4buHdSBVU0QsIGRvYW5oVGh1IHThu7cgVVNECiAgICAgICAgZHNbaV0ubG9pTmh1YW5OZ3VvaSA9IGRzW2ldLmxhaVJvbmcgLyBkc1tpXS5zb05ndW9pOwogICAgICAgIAogICAgICAgIGlmIChkc1tpXS5kb2FuaFRodSA+IDEwKQogICAgICAgICAgICBzdHJjcHkoZHNbaV0ueGVwTG9haSwgIkNhbyIpOwogICAgICAgIGVsc2UgaWYgKGRzW2ldLmRvYW5oVGh1ID49IDUpCiAgICAgICAgICAgIHN0cmNweShkc1tpXS54ZXBMb2FpLCAiVHJ1bmcgQmluaCIpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgc3RyY3B5KGRzW2ldLnhlcExvYWksICJUaGFwIik7CiAgICB9Cn0KCi8vIEjDoG0gaW4gZGFuaCBzw6FjaAp2b2lkIGluQmFuZyhzdHJ1Y3QgQ29uZ1R5IGRzW10sIGludCBuKSB7CiAgICBwcmludGYoIlRIT05HIFRJTiBUSE9ORyBLRSAyMDIzXG4iKTsKICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKICAgIHByaW50ZigiVFQgfCBDb25nIHR5ICAgICAgICB8IFNvIG5ndW9pIHwgRG9hbmggdGh1IHwgTGFpIHJvbmcgfCBUaSBzdWF0IHwgTG9pIG5odWFuL25ndW9pIHwgWGVwIGxvYWlcbiIpOwogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoIiUtMmQgfCAlLTE0cyB8ICUtOGQgfCAlLTEwLjJmIHwgJS04LjBmIHwgJS03LjJmIHwgJS0xNS40ZiB8ICUtMTBzXG4iLAogICAgICAgICAgICAgICBpICsgMSwgZHNbaV0udGVuLCBkc1tpXS5zb05ndW9pLCBkc1tpXS5kb2FuaFRodSwgZHNbaV0ubGFpUm9uZywKICAgICAgICAgICAgICAgZHNbaV0udGlTdWF0LCBkc1tpXS5sb2lOaHVhbk5ndW9pLCBkc1tpXS54ZXBMb2FpKTsKICAgIH0KICAgIHByaW50ZigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKfQoKLy8gSMOgbSB0aOG7kW5nIGvDqgp2b2lkIHRob25nS2Uoc3RydWN0IENvbmdUeSBkc1tdLCBpbnQgbikgewogICAgaW50IG1heE5ndW9pID0gZHNbMF0uc29OZ3VvaTsKICAgIGZsb2F0IG1heERvYW5oVGh1ID0gZHNbMF0uZG9hbmhUaHU7CiAgICBmbG9hdCBtYXhUaVN1YXQgPSBkc1swXS50aVN1YXQ7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoZHNbaV0uc29OZ3VvaSA+IG1heE5ndW9pKQogICAgICAgICAgICBtYXhOZ3VvaSA9IGRzW2ldLnNvTmd1b2k7CiAgICAgICAgaWYgKGRzW2ldLmRvYW5oVGh1ID4gbWF4RG9hbmhUaHUpCiAgICAgICAgICAgIG1heERvYW5oVGh1ID0gZHNbaV0uZG9hbmhUaHU7CiAgICAgICAgaWYgKGRzW2ldLnRpU3VhdCA+IG1heFRpU3VhdCkKICAgICAgICAgICAgbWF4VGlTdWF0ID0gZHNbaV0udGlTdWF0OwogICAgfQoKICAgIHByaW50ZigiU28gbmhhbiB2aWVuIGRvbmcgbmhhdDogJWQgbmd1b2lcbiIsIG1heE5ndW9pKTsKICAgIHByaW50ZigiRG9hbmggdGh1IGNhbyBuaGF0OiAlLjJmIHR5IFVTRFxuIiwgbWF4RG9hbmhUaHUpOwogICAgcHJpbnRmKCJUaSBzdWF0IGNhbyBuaGF0OiAlLjJmICUlXG4iLCBtYXhUaVN1YXQpOwp9CgppbnQgbWFpbigpIHsKICAgIHN0cnVjdCBDb25nVHkgZHNbTUFYXSA9IHsKICAgICAgICB7IlZpbmFtaWxrIiwgMTAwMDAsIDIuNSwgMzUwfSwKICAgICAgICB7IlZpZXRjb21iYW5rIiwgMjIwMDAsIDEuODUsIDExMDB9LAogICAgICAgIHsiVmluZ3JvdXAiLCA1MDAwMCwgNS4zLCAyNjB9LAogICAgICAgIHsiRlBUIiwgNDIwMDAsIDUuOCwgMzMwfSwKICAgICAgICB7IkhvYSBQaGF0IiwgMzAwMDAsIDMuMiwgMjEwfSwKICAgICAgICB7IlZpZXRuYW1BaXIiLCAxNTAwMCwgMy4yLCAzMDB9LAogICAgICAgIHsiUGV0cm92aWV0bmFtIiwgNjAwMDAsIDI5LjIsIDIxMDB9CiAgICB9OwoKICAgIGludCBuID0gNzsKCiAgICB0aW5oVG9hbihkcywgbik7CiAgICBpbkJhbmcoZHMsIG4pOwogICAgdGhvbmdLZShkcywgbik7CgogICAgcmV0dXJuIDA7Cn0=