Nền tảng Kiến thức - Hành trang tới Tương lai
Card image

Chương 8-Bài 2. Lab 8.2 - Sắp xếp Sinh viên theo điểm tăng dần

Tác giả: Dương Nguyễn Phú Cường #11369
Ngày đăng: Hồi xưa đó
Lượt xem: 493

Yêu cầu

SẮP XẾP SINH VIÊN THEO ĐIỂM TĂNG DẦN
  • Hướng dẫn: Sử dụng lại bài số 1, trước khi hiển thị sinh viên ra màn hình thì chạy giải thuật sắp xếp

Hướng dẫn giải

Code
/*
BÀI 2: XÂY DỰNG CHƯƠNG TRÌNH LƯU THÔNG TIN SINH VIÊN VÀ SẮP XẾP SINH VIÊN THEO ĐIỂM TĂNG DẦN

Input: Nhập vào từ bàn phím các thông tin sinh viên như: mã số sinh viên, tên sinh viên, ngành học, điểm trung bình
Output: Xuất ra thông tin của tất cả sinh viên trên màn hình, sắp xếp theo điểm tăng dần

*/
#include<stdio.h>
#include<conio.h>
#include<string.h>

// Cau truc Struct SinhVien
struct SinhVien {
  char mssv[50];
  char tenSV[50];
  char nganhHoc[50];
  float diemTB;
};

typedef SinhVien SV;

// Hàm hoán vị
void hoanVi(SV *sinhvien1, SV *sinhvien2) {
  SV temp;
  
  temp = *sinhvien1;
  *sinhvien1 = *sinhvien2;
  *sinhvien2 = temp;
}

int main() {
  // 1. INPUT
  int N;
  printf("Moi nhap so luong Sinh vien: ");
  scanf("%d", &N);

  // 2. Khoi tao mang SinhVien N nguoi
  SV danhsachSV[N];
  
  // 3. Nhap thong tin Sinh vien
  for(int i=0; i<N; i++) {
    printf("=== Moi nhap thong tin sinh vien thu %d ===\n", i);
    fflush(stdin);
    
    printf("- MSSV: ");
    gets(danhsachSV[i].mssv);
    
    printf("- Ho ten: ");
    gets(danhsachSV[i].tenSV);
    
    printf("- Nganh hoc: ");
    gets(danhsachSV[i].nganhHoc);
    
    printf("- Diem trung binh: ");
    scanf("%f", &danhsachSV[i].diemTB);
  }
  
  // 4. Giái thuật sắp xếp theo điểm tăng dần
  for(int i=0; i<N; i++) {
    for(int j=i+1; j<N; j++) {
      if(danhsachSV[i].diemTB > danhsachSV[j].diemTB) {
        hoanVi(&danhsachSV[i], &danhsachSV[j]);
      }
    }
  }
  
  // 5. OUTPUT xuất ra màn hình
  printf("====== DANH SACH SINH VIEN ======\n");
  for(int i=0; i<N; i++) {
    printf("=== Thong tin sinh vien thu %d:\n", i);
    printf("- MSSV: ");
    puts(danhsachSV[i].mssv);
    
    printf("- Ho ten: ");
    puts(danhsachSV[i].tenSV);
    
    printf("- Nganh hoc: ");
    puts(danhsachSV[i].nganhHoc);
    
    printf("- Diem trung binh: %f\n ", danhsachSV[i].diemTB);
  }
  
  getch(); // Lenh dung man hinh
  return 0;
}

Chương trình học


  1. Giới thiệu, cài đặt, cấu hình môi trường lập trình 1
    1. Cài đặt trình soạn thảo code Dev C++ #10859
  2. Biến, Hằng số và Toán tử 6
    1. Các thao tác Nhập (input), Xuất (output) dữ liệu trong lập trình C #10975
    2. Lab 2.1 - Xây dựng chương trình tính toán Cộng Trừ Nhân Chia đơn giản #10971
    3. Lab 2.2 - Xây dựng chương trình tính Diện tích và Chu vi hình chữ nhật #10977
    4. Lab 2.3 - Xây dựng chương trình tính Diện tích và Chu vi hình tròn #10982
    5. Lab 2.4 - Xây dựng chương trình tính Điểm trung bình Toán Lý Hóa theo hệ số #10984
    6. Lab extra 2.1 - Xây dựng chương trình Quản lý thông tin Sinh viên đơn giản #10980
  3. Câu lệnh rẽ nhánh, điều kiện IF ELSE và SWITCH CASE 5
    1. Lab 3.1 - Xây dựng chương trình Xếp loại kết quả học tập #11046
    2. Lab 3.2.1 - Xây dựng chương trình Giải phương trình Bậc nhất #11056
    3. Lab 3.2.2 - Xây dựng chương trình Giải phương trình Bậc hai #11061
    4. Lab 3.3 - Xây dựng chương trình Tính tiền điện #11068
    5. Lab 3.4 - Xây dựng menu chương trình bằng IF ELSE và SWITCH CASE #11072
  4. Vòng lặp WHILE, DO WHILE và FOR 5
    1. Vòng lặp WHILE - Ví dụ cách hoạt động vòng lặp #11219
    2. Lab 4.1 - Tính trung bình tổng của các số tự nhiên chia hết cho 2 #11221
    3. Lab 4.2 - Xây dựng chương trình xác định Số nguyên tố #11222
    4. Lab 4.3 - Xây dựng chương trình xác định Số chính phương #11223
    5. Lab 4.4 - Xây dựng menu chương trình cho các bài tập trên #11224
  5. Hàm Function trong lập trình 3
    1. Lab 5.1 - Xây dựng chương trình tìm giá trị lớn nhất trong 3 số #11229
    2. Lab 5.2 - Xây dựng hàm tính năm nhuận #11349
    3. Lab 5.3 - Xây dựng hàm Hoán vị #11351
  6. Mảng Array trong Lập trình 5
    1. Lab 6.1 - Tính trung bình tổng các số chia hết cho 3 trong mảng #11353
    2. Lab 6.2 - Tìm giá trị lớn nhất (MAX) và nhỏ nhất (MIN) trong mảng #11355
    3. Lab 6.3 - Sắp xếp mảng theo thứ tự Giảm dần #11357
    4. Lab 6.4 - Tính Bình phương các phần tử trong mảng 2 chiều #11359
    5. Lab Extra 6.1 - Tính tổng các đường chéo của ma trận vuông NxN #11373
  7. Xử lý chuỗi String trong lập trình 4
    1. Lab 7.1 - Xây dựng chương trình đếm nguyên âm và phụ âm của 1 chuỗi #11361
    2. Lab 7.2 - Xây dựng chương trình Đăng nhập bằng USERNAME và PASSWORD #11363
    3. Lab 7.3 - Xây dựng chương trình sắp xếp chuỗi theo chữ cái #11365
    4. Lab Extra 7.1 - Chương trình Quản lý thông tin Sinh viên #11377
  8. Kiểu dữ liệu có cấu trúc Struct và các thuật toán trong Lập trình 3
    1. Lab 8.1 - Xây dựng chương trình lưu thông tin Sinh viên #11367
    2. Lab 8.2 - Sắp xếp Sinh viên theo điểm tăng dần #11369
    3. Lab 8.3 - Tìm kiếm Sinh viên #11371
  9. Assignment (Bài tập lớn) cuối khóa 11
    1. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 1 #11454
    2. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 1 - Kiểm tra số nguyên #11457
    3. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 2 - Tìm Ước chung, Bội chung của 2 số #11466
    4. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 3 - Tính tiền cho quán Karaoke #11470
    5. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 4 - Tính tiền điện #11471
    6. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 5 - Chức năng đổi tiền #11472
    7. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 6 - Tính lãi suất vay ngân hàng #11473
    8. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 7 - Vay tiền mua xe #11475
    9. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 8 - Sắp xếp thông tin Sinh viên #11476
    10. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 9 - Xây dựng game LOTT #11477
    11. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 10 - Tính toán Phân số #11478
  10. Tài liệu tham khảo 1
    1. Kho sách, nguồn tài liệu tham khảo Lập trình C #10987
  11. Kỳ thi cuối kỳ - Final Exam 1
    1. Tiêu chí chấm điểm Exam #11514
Các bài học

Chương trình học

Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...

Chương trình học


  1. Giới thiệu, cài đặt, cấu hình môi trường lập trình 1
    1. Cài đặt trình soạn thảo code Dev C++ #10859
  2. Biến, Hằng số và Toán tử 6
    1. Các thao tác Nhập (input), Xuất (output) dữ liệu trong lập trình C #10975
    2. Lab 2.1 - Xây dựng chương trình tính toán Cộng Trừ Nhân Chia đơn giản #10971
    3. Lab 2.2 - Xây dựng chương trình tính Diện tích và Chu vi hình chữ nhật #10977
    4. Lab 2.3 - Xây dựng chương trình tính Diện tích và Chu vi hình tròn #10982
    5. Lab 2.4 - Xây dựng chương trình tính Điểm trung bình Toán Lý Hóa theo hệ số #10984
    6. Lab extra 2.1 - Xây dựng chương trình Quản lý thông tin Sinh viên đơn giản #10980
  3. Câu lệnh rẽ nhánh, điều kiện IF ELSE và SWITCH CASE 5
    1. Lab 3.1 - Xây dựng chương trình Xếp loại kết quả học tập #11046
    2. Lab 3.2.1 - Xây dựng chương trình Giải phương trình Bậc nhất #11056
    3. Lab 3.2.2 - Xây dựng chương trình Giải phương trình Bậc hai #11061
    4. Lab 3.3 - Xây dựng chương trình Tính tiền điện #11068
    5. Lab 3.4 - Xây dựng menu chương trình bằng IF ELSE và SWITCH CASE #11072
  4. Vòng lặp WHILE, DO WHILE và FOR 5
    1. Vòng lặp WHILE - Ví dụ cách hoạt động vòng lặp #11219
    2. Lab 4.1 - Tính trung bình tổng của các số tự nhiên chia hết cho 2 #11221
    3. Lab 4.2 - Xây dựng chương trình xác định Số nguyên tố #11222
    4. Lab 4.3 - Xây dựng chương trình xác định Số chính phương #11223
    5. Lab 4.4 - Xây dựng menu chương trình cho các bài tập trên #11224
  5. Hàm Function trong lập trình 3
    1. Lab 5.1 - Xây dựng chương trình tìm giá trị lớn nhất trong 3 số #11229
    2. Lab 5.2 - Xây dựng hàm tính năm nhuận #11349
    3. Lab 5.3 - Xây dựng hàm Hoán vị #11351
  6. Mảng Array trong Lập trình 5
    1. Lab 6.1 - Tính trung bình tổng các số chia hết cho 3 trong mảng #11353
    2. Lab 6.2 - Tìm giá trị lớn nhất (MAX) và nhỏ nhất (MIN) trong mảng #11355
    3. Lab 6.3 - Sắp xếp mảng theo thứ tự Giảm dần #11357
    4. Lab 6.4 - Tính Bình phương các phần tử trong mảng 2 chiều #11359
    5. Lab Extra 6.1 - Tính tổng các đường chéo của ma trận vuông NxN #11373
  7. Xử lý chuỗi String trong lập trình 4
    1. Lab 7.1 - Xây dựng chương trình đếm nguyên âm và phụ âm của 1 chuỗi #11361
    2. Lab 7.2 - Xây dựng chương trình Đăng nhập bằng USERNAME và PASSWORD #11363
    3. Lab 7.3 - Xây dựng chương trình sắp xếp chuỗi theo chữ cái #11365
    4. Lab Extra 7.1 - Chương trình Quản lý thông tin Sinh viên #11377
  8. Kiểu dữ liệu có cấu trúc Struct và các thuật toán trong Lập trình 3
    1. Lab 8.1 - Xây dựng chương trình lưu thông tin Sinh viên #11367
    2. Lab 8.2 - Sắp xếp Sinh viên theo điểm tăng dần #11369
    3. Lab 8.3 - Tìm kiếm Sinh viên #11371
  9. Assignment (Bài tập lớn) cuối khóa 11
    1. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 1 #11454
    2. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 1 - Kiểm tra số nguyên #11457
    3. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 2 - Tìm Ước chung, Bội chung của 2 số #11466
    4. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 3 - Tính tiền cho quán Karaoke #11470
    5. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 4 - Tính tiền điện #11471
    6. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 5 - Chức năng đổi tiền #11472
    7. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 6 - Tính lãi suất vay ngân hàng #11473
    8. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 7 - Vay tiền mua xe #11475
    9. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 8 - Sắp xếp thông tin Sinh viên #11476
    10. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 9 - Xây dựng game LOTT #11477
    11. Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 2 - chức năng 10 - Tính toán Phân số #11478
  10. Tài liệu tham khảo 1
    1. Kho sách, nguồn tài liệu tham khảo Lập trình C #10987
  11. Kỳ thi cuối kỳ - Final Exam 1
    1. Tiêu chí chấm điểm Exam #11514

Bài học trước Bài học tiếp theo