fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. // Câu 1: Xây dựng kiểu dữ liệu cấu trúc để lưu trữ
  5. struct SinhVien {
  6. int tt;
  7. char hoTen[50];
  8. float toan;
  9. float van;
  10. float anh;
  11. float tongDiem;
  12. char xepLop;
  13. char khenThuong[50]; // Không có quy tắc nên sẽ để trống
  14. };
  15.  
  16. int main() {
  17. // Câu 2: Khởi tạo dữ liệu
  18. // Khởi tạo mảng 7 sinh viên
  19. struct SinhVien dsLop[7];
  20. int n = 7;
  21.  
  22. // Khởi tạo dữ liệu gốc từ bảng
  23. // Dữ liệu cho sinh viên 1
  24. strcpy(dsLop[0].hoTen, "Nguyen Van A");
  25. dsLop[0].toan = 8;
  26. dsLop[0].van = 7;
  27. dsLop[0].anh = 8;
  28.  
  29. // Dữ liệu cho sinh viên 2
  30. strcpy(dsLop[1].hoTen, "Tran Thi B");
  31. dsLop[1].toan = 7;
  32. dsLop[1].van = 8;
  33. dsLop[1].anh = 9;
  34.  
  35. // Dữ liệu cho sinh viên 3
  36. strcpy(dsLop[2].hoTen, "Le Van C");
  37. dsLop[2].toan = 6;
  38. dsLop[2].van = 4;
  39. dsLop[2].anh = 7;
  40.  
  41. // Dữ liệu cho sinh viên 4
  42. strcpy(dsLop[3].hoTen, "Hoang Thi D");
  43. dsLop[3].toan = 3;
  44. dsLop[3].van = 5;
  45. dsLop[3].anh = 7;
  46.  
  47. // Dữ liệu cho sinh viên 5
  48. strcpy(dsLop[4].hoTen, "Vu Van E");
  49. dsLop[4].toan = 6;
  50. dsLop[4].van = 5;
  51. dsLop[4].anh = 6;
  52.  
  53. // Dữ liệu cho sinh viên 6
  54. strcpy(dsLop[5].hoTen, "Bui Thi F");
  55. dsLop[5].toan = 9;
  56. dsLop[5].van = 8;
  57. dsLop[5].anh = 8;
  58.  
  59. // Dữ liệu cho sinh viên 7
  60. strcpy(dsLop[6].hoTen, "Thai Van E");
  61. dsLop[6].toan = 9;
  62. dsLop[6].van = 8;
  63. dsLop[6].anh = 9;
  64.  
  65.  
  66. // Câu 3: Điền các cột trống và thống kê
  67. int countA = 0;
  68. int countB = 0;
  69. int countC = 0;
  70.  
  71. for (int i = 0; i < n; i++) {
  72. // 1. Điền số thứ tự
  73. dsLop[i].tt = i + 1;
  74.  
  75. // 2. Tính Tổng điểm
  76. dsLop[i].tongDiem = (dsLop[i].toan * 2) + (dsLop[i].van * 2) + dsLop[i].anh;
  77.  
  78. // 3. Xếp lớp
  79. if (dsLop[i].tongDiem >= 35) {
  80. dsLop[i].xepLop = 'A';
  81. countA++;
  82. } else if (dsLop[i].tongDiem >= 30) {
  83. dsLop[i].xepLop = 'B';
  84. countB++;
  85. } else {
  86. dsLop[i].xepLop = 'C';
  87. countC++;
  88. }
  89.  
  90. // 4. Khen thưởng (để trống vì không có quy tắc)
  91. strcpy(dsLop[i].khenThuong, "");
  92. }
  93.  
  94. // Câu 4: In ra màn hình bảng thống kê
  95. printf("\t\t\t\tTHONG TIN THONG KE\n");
  96. printf("--------------------------------------------------------------------------------------------\n");
  97. printf("| %-3s | %-15s | %-5s | %-5s | %-5s | %-10s | %-8s | %-12s |\n",
  98. "TT", "Ho ten", "Toan", "Van", "Anh", "Tong diem", "Xep lop", "Khen thuong");
  99. printf("--------------------------------------------------------------------------------------------\n");
  100.  
  101. for (int i = 0; i < n; i++) {
  102. printf("| %-3d | %-15s | %-5.1f | %-5.1f | %-5.1f | %-10.1f | %-8c | %-12s |\n",
  103. dsLop[i].tt,
  104. dsLop[i].hoTen,
  105. dsLop[i].toan,
  106. dsLop[i].van,
  107. dsLop[i].anh,
  108. dsLop[i].tongDiem,
  109. dsLop[i].xepLop,
  110. dsLop[i].khenThuong);
  111. }
  112. printf("--------------------------------------------------------------------------------------------\n");
  113.  
  114. // In phần thống kê số học sinh
  115. printf("\nThong ke so hoc sinh:\n");
  116. printf("Lop A: %d hoc sinh.\n", countA);
  117. printf("Lop B: %d hoc sinh.\n", countB);
  118. printf("Lop C: %d hoc sinh.\n", countC);
  119.  
  120. return 0;
  121. }
  122.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
				THONG TIN THONG KE
--------------------------------------------------------------------------------------------
| TT  | Ho ten          | Toan  | Van   | Anh   | Tong diem  | Xep lop  | Khen thuong  |
--------------------------------------------------------------------------------------------
| 1   | Nguyen Van A    | 8.0   | 7.0   | 8.0   | 38.0       | A        |              |
| 2   | Tran Thi B      | 7.0   | 8.0   | 9.0   | 39.0       | A        |              |
| 3   | Le Van C        | 6.0   | 4.0   | 7.0   | 27.0       | C        |              |
| 4   | Hoang Thi D     | 3.0   | 5.0   | 7.0   | 23.0       | C        |              |
| 5   | Vu Van E        | 6.0   | 5.0   | 6.0   | 28.0       | C        |              |
| 6   | Bui Thi F       | 9.0   | 8.0   | 8.0   | 42.0       | A        |              |
| 7   | Thai Van E      | 9.0   | 8.0   | 9.0   | 43.0       | A        |              |
--------------------------------------------------------------------------------------------

Thong ke so hoc sinh:
Lop A: 4 hoc sinh.
Lop B: 0 hoc sinh.
Lop C: 3 hoc sinh.