fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define MAX 100
  5.  
  6. // Cấu trúc lưu thông tin công ty
  7. struct CongTy {
  8. char ten[50];
  9. int soNguoi;
  10. float doanhThu;
  11. float laiRong;
  12. float tiSuat;
  13. float loiNhuanNguoi;
  14. char xepLoai[20];
  15. };
  16.  
  17. // Hàm tính toán các giá trị
  18. void tinhToan(struct CongTy ds[], int n) {
  19. for (int i = 0; i < n; i++) {
  20. ds[i].tiSuat = (ds[i].laiRong / (ds[i].doanhThu * 1000)) * 100; // vì laiRong triệu USD, doanhThu tỷ USD
  21. ds[i].loiNhuanNguoi = ds[i].laiRong / ds[i].soNguoi;
  22.  
  23. if (ds[i].doanhThu > 10)
  24. strcpy(ds[i].xepLoai, "Cao");
  25. else if (ds[i].doanhThu >= 5)
  26. strcpy(ds[i].xepLoai, "Trung Binh");
  27. else
  28. strcpy(ds[i].xepLoai, "Thap");
  29. }
  30. }
  31.  
  32. // Hàm in danh sách
  33. void inBang(struct CongTy ds[], int n) {
  34. printf("THONG TIN THONG KE 2023\n");
  35. printf("---------------------------------------------------------------------\n");
  36. printf("TT | Cong ty | So nguoi | Doanh thu | Lai rong | Ti suat | Loi nhuan/nguoi | Xep loai\n");
  37. printf("---------------------------------------------------------------------\n");
  38. for (int i = 0; i < n; i++) {
  39. printf("%-2d | %-14s | %-8d | %-10.2f | %-8.0f | %-7.2f | %-15.4f | %-10s\n",
  40. i + 1, ds[i].ten, ds[i].soNguoi, ds[i].doanhThu, ds[i].laiRong,
  41. ds[i].tiSuat, ds[i].loiNhuanNguoi, ds[i].xepLoai);
  42. }
  43. printf("---------------------------------------------------------------------\n");
  44. }
  45.  
  46. // Hàm thống kê
  47. void thongKe(struct CongTy ds[], int n) {
  48. int maxNguoi = ds[0].soNguoi;
  49. float maxDoanhThu = ds[0].doanhThu;
  50. float maxTiSuat = ds[0].tiSuat;
  51.  
  52. for (int i = 1; i < n; i++) {
  53. if (ds[i].soNguoi > maxNguoi)
  54. maxNguoi = ds[i].soNguoi;
  55. if (ds[i].doanhThu > maxDoanhThu)
  56. maxDoanhThu = ds[i].doanhThu;
  57. if (ds[i].tiSuat > maxTiSuat)
  58. maxTiSuat = ds[i].tiSuat;
  59. }
  60.  
  61. printf("So nhan vien dong nhat: %d nguoi\n", maxNguoi);
  62. printf("Doanh thu cao nhat: %.2f ty USD\n", maxDoanhThu);
  63. printf("Ti suat cao nhat: %.2f %%\n", maxTiSuat);
  64. }
  65.  
  66. int main() {
  67. struct CongTy ds[MAX] = {
  68. {"Vinamilk", 10000, 2.5, 350},
  69. {"Vietcombank", 22000, 1.85, 1100},
  70. {"Vingroup", 50000, 5.3, 260},
  71. {"FPT", 42000, 5.8, 330},
  72. {"Hoa Phat", 30000, 3.2, 210},
  73. {"VietnamAir", 15000, 3.2, 300},
  74. {"Petrovietnam", 60000, 29.2, 2100}
  75. };
  76.  
  77. int n = 7;
  78.  
  79. tinhToan(ds, n);
  80. inBang(ds, n);
  81. thongKe(ds, n);
  82.  
  83. return 0;
  84. }
Success #stdin #stdout 0s 5304KB
stdin
Standard input is empty
stdout
THONG TIN THONG KE 2023
---------------------------------------------------------------------
TT | Cong ty        | So nguoi | Doanh thu | Lai rong | Ti suat | Loi nhuan/nguoi | Xep loai
---------------------------------------------------------------------
1  | Vinamilk       | 10000    | 2.50       | 350      | 14.00   | 0.0350          | Thap      
2  | Vietcombank    | 22000    | 1.85       | 1100     | 59.46   | 0.0500          | Thap      
3  | Vingroup       | 50000    | 5.30       | 260      | 4.91    | 0.0052          | Trung Binh
4  | FPT            | 42000    | 5.80       | 330      | 5.69    | 0.0079          | Trung Binh
5  | Hoa Phat       | 30000    | 3.20       | 210      | 6.56    | 0.0070          | Thap      
6  | VietnamAir     | 15000    | 3.20       | 300      | 9.38    | 0.0200          | Thap      
7  | Petrovietnam   | 60000    | 29.20      | 2100     | 7.19    | 0.0350          | Cao       
---------------------------------------------------------------------
So nhan vien dong nhat: 60000 nguoi
Doanh thu cao nhat: 29.20 ty USD
Ti suat cao nhat: 59.46 %