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; }
Mục lục
Chương trình học
- Giới thiệu, cài đặt, cấu hình môi trường lập trình 1
-
Biến, Hằng số và Toán tử
6
- Các thao tác Nhập (input), Xuất (output) dữ liệu trong lập trình C #10975
- 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
- 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
- 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
- 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
- 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
-
Câu lệnh rẽ nhánh, điều kiện IF ELSE và SWITCH CASE
5
- Lab 3.1 - Xây dựng chương trình Xếp loại kết quả học tập #11046
- Lab 3.2.1 - Xây dựng chương trình Giải phương trình Bậc nhất #11056
- Lab 3.2.2 - Xây dựng chương trình Giải phương trình Bậc hai #11061
- Lab 3.3 - Xây dựng chương trình Tính tiền điện #11068
- Lab 3.4 - Xây dựng menu chương trình bằng IF ELSE và SWITCH CASE #11072
-
Vòng lặp WHILE, DO WHILE và FOR
5
- Vòng lặp WHILE - Ví dụ cách hoạt động vòng lặp #11219
- Lab 4.1 - Tính trung bình tổng của các số tự nhiên chia hết cho 2 #11221
- Lab 4.2 - Xây dựng chương trình xác định Số nguyên tố #11222
- Lab 4.3 - Xây dựng chương trình xác định Số chính phương #11223
- Lab 4.4 - Xây dựng menu chương trình cho các bài tập trên #11224
- Hàm Function trong lập trình 3
-
Mảng Array trong Lập trình
5
- Lab 6.1 - Tính trung bình tổng các số chia hết cho 3 trong mảng #11353
- Lab 6.2 - Tìm giá trị lớn nhất (MAX) và nhỏ nhất (MIN) trong mảng #11355
- Lab 6.3 - Sắp xếp mảng theo thứ tự Giảm dần #11357
- Lab 6.4 - Tính Bình phương các phần tử trong mảng 2 chiều #11359
- Lab Extra 6.1 - Tính tổng các đường chéo của ma trận vuông NxN #11373
- Xử lý chuỗi String trong lập trình 4
- Kiểu dữ liệu có cấu trúc Struct và các thuật toán trong Lập trình 3
-
Assignment (Bài tập lớn) cuối khóa
11
- Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 1 #11454
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Tài liệu tham khảo 1
- Kỳ thi cuối kỳ - Final Exam 1
Các bài học
Bài học trước Bài học tiếp theo
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
- Giới thiệu, cài đặt, cấu hình môi trường lập trình 1
-
Biến, Hằng số và Toán tử
6
- Các thao tác Nhập (input), Xuất (output) dữ liệu trong lập trình C #10975
- 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
- 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
- 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
- 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
- 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
-
Câu lệnh rẽ nhánh, điều kiện IF ELSE và SWITCH CASE
5
- Lab 3.1 - Xây dựng chương trình Xếp loại kết quả học tập #11046
- Lab 3.2.1 - Xây dựng chương trình Giải phương trình Bậc nhất #11056
- Lab 3.2.2 - Xây dựng chương trình Giải phương trình Bậc hai #11061
- Lab 3.3 - Xây dựng chương trình Tính tiền điện #11068
- Lab 3.4 - Xây dựng menu chương trình bằng IF ELSE và SWITCH CASE #11072
-
Vòng lặp WHILE, DO WHILE và FOR
5
- Vòng lặp WHILE - Ví dụ cách hoạt động vòng lặp #11219
- Lab 4.1 - Tính trung bình tổng của các số tự nhiên chia hết cho 2 #11221
- Lab 4.2 - Xây dựng chương trình xác định Số nguyên tố #11222
- Lab 4.3 - Xây dựng chương trình xác định Số chính phương #11223
- Lab 4.4 - Xây dựng menu chương trình cho các bài tập trên #11224
- Hàm Function trong lập trình 3
-
Mảng Array trong Lập trình
5
- Lab 6.1 - Tính trung bình tổng các số chia hết cho 3 trong mảng #11353
- Lab 6.2 - Tìm giá trị lớn nhất (MAX) và nhỏ nhất (MIN) trong mảng #11355
- Lab 6.3 - Sắp xếp mảng theo thứ tự Giảm dần #11357
- Lab 6.4 - Tính Bình phương các phần tử trong mảng 2 chiều #11359
- Lab Extra 6.1 - Tính tổng các đường chéo của ma trận vuông NxN #11373
- Xử lý chuỗi String trong lập trình 4
- Kiểu dữ liệu có cấu trúc Struct và các thuật toán trong Lập trình 3
-
Assignment (Bài tập lớn) cuối khóa
11
- Assignment (Bài tập lớn) cuối khóa - đề 1 - parse 1 #11454
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Tài liệu tham khảo 1
- Kỳ thi cuối kỳ - Final Exam 1
Bài học trước Bài học tiếp theo
Menu Tiện ích
Menu Hướng dẫn Học tập
❤🧡💛💚💙💜 Học là phải THỰC HÀNH ❤🧡💛💚💙💜
Thực hiện các bước tuần tự theo nội dung Bài học nhé!