IMG-LOGO
×

Tài Liệu Học

Khoá học lập trình C/C++ Dành cho người mới bắt đầu.

Cài đặt môi trường & tạo dự án đầu tiên

[Video] - Nhập môn cho người mới bắt đầu - Lập trình C [Video] Flowchart & ví dụ viết flowchart của phương trình bậc 1 - Lập Trình C [Video] Hướng dẫn cài đặt môi trường lập trình C - Lập trình C [Video] Tìm hiểu biến & kiểu dữ liệu trong C - Lập trình C

Nhập xuất dữ liệu từ bàn phím

[Video] Toán tử & biểu thức login trong C - Lập Trinh C [Video] Nhập dữ liệu trong C (scanf, printf) - Lập trình C [Video] Nhập xuất dữ liệu phần 2 - Lập Trình C

Mệnh đề điều kiện

[Video] Tìm hiểu if, else, switch trong lập trình C - Lập Trình C

Vòng lặp (for, while, do .. while)

[Video] Tìm hiểu về vòng lặp for trong C - Lập trình C [Video] Tìm hiểu while, do..while trong lập trình C - lập Trình C [Video] - Hướng dẫn chữa bài Fibonaci - Lập Trình C

Mảng trong C & ôn tập

[Video] Tìm hiểu mảng 1 chiều trong C - Lập trình C [Video] Tìm hiểu mảng 2 chiều - Lập Trình C

Pointer

[Video] Tìm hiểu pointer phần 1 - Lập Trình C [Video] Tìm hiểu pointer phần 2 - Lập Trình C [Video] Tìm hiểu pointer phần 3 - Lập trình C [Video] Ôn luyện - Sắp xếp trong C, con trỏ cấp phát động

Function & String & Struct & File

[Video] Tìm hiểu function trong lập trình C - Lập Trình C [Video] Tìm hiểu string trong lập trình C - Lập Trình C [Video] Tìm hiểu Struct trong C | Khóa học lập trình C

Ôn tập tổng quát C

[Video] Hướng dẫn chừa bài tập quản lý rạp chiều phím - Lập trình C [Video] Chương trình quản lý tỷ phú bằng C | Khóa học lập trình C 1000 Bài tập C - Lập Trình C

Cấu Trúc Dữ Liệu & Giải Thuật

Phần 1 | Mở đầu cầu trúc dữ liệu & giải thuật là gì? | Khoá học cấu trúc dữ liệu & giải thuật




Trang Chủ Lập Trình C [Video] Ôn luyện - Sắp xếp trong C, con trỏ cấp phát động

[Video] Ôn luyện - Sắp xếp trong C, con trỏ cấp phát động

by GokiSoft.com - 22:55 28/10/2021 6,296 Lượt Xem

Đề Bài

Cho menu chương trình như sau

1. Nhập vào N số nguyên

2. Hiển thị danh sách các phần tử trong mảng

3. Tính tổng các phần tử trong mảng

4. Săp xếp các phần tử trong mảng theo thứ tự tăng dần

5. Thoát

Yêu cầu :

Khai báo biến con trỏ t trong chương trình

- Khi người dùng lựa chọn 1 -> thực hiện hỏi người dùng số phần tử cần thểm vào mảng t. Sau đó nhập các phần tử được thêm vào cho mảng t

sau khi nhập -> hiển thị lại menu chương trình

- Khi người dùng lựa chọn 2 -> thực hiện theo yêu câu -> sau khi thực hiên xong -> hiển thị lại menu chương trình

- Khi người dùng lựa chọn 3 -> thực hiện theo yêu câu -> sau khi thực hiên xong -> hiển thị lại menu chương trình

- Khi người dùng lựa chọn 4 -> thực hiện theo yêu câu -> sau khi thực hiên xong -> hiển thị lại menu chương trình

- Khi người dùng lựa chọn 5 -> thoát chương trình

Mã Nguồn:


#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void showMenu() {
	printf("1. Nhap N phan tu cho mang");
	printf("2. Hien thi danh sach cac phan tu trong mang");
	printf("3. Tinh tong cac phan tu trong mang");
	printf("4. Sap xep cac phan tu trong mang theo thu tu tang dan");
	printf("5. Thoat!");
	printf("Choose : ");
}

int main(int argc, char *argv[]) {
	//quan ly cac phan tu trong mang
	int *t;
	int total = 0, N, choose, i, j;
	int sum = 0;
	
	do {
		showMenu();
		scanf("%d", &choose);
		
		switch(choose) {
			case 1:
				printf("Nhap so phan tu can them N = ");
				scanf("%d", &N);
				//tong so phan tu trong mang t
				if(total == 0) {
					total = N;
					t = (int *) calloc (N, sizeof(int));
				} else {
					total += N;
					t = (int *) realloc(t, total * sizeof(int));
				}
				//nhap du lieu cho tung phan tu
				//tong so phan tu : total, index : 0 -> total - 1
				//da nhap san : 0 -> total - N - 1 : phan tu cu -> da nhap roi
				//total - N toi total - 1
				for(i=total - N;i<total;i++) {
					printf("Nhap phan tu t[%d] = ", i);
					scanf("%d", t+i);
				}
				break;
			case 2:
				printf("Danh sach phan tu trong mang :");
				for(i=0;i<total;i++) {
					printf("%d, ", t[i]);
				}
				break;
			case 3:
				for(i=0;i<total;i++) {
					sum += t[i];
				}
				printf("Tong = %d", sum);
				break;
			case 4:
				for(i=0;i<total-1;i++) {
					for(j=i+1;j<total;j++) {
						if(t[i] > t[j]) {
							//swap -> doi vi tri cua i & j
							//t[i] = 5, t[j] = 2
							int temp = t[i];//temp = 5
							t[i] = t[j];//t[i] = 2, t[j] = 2
							t[j] = temp;//t[j] = 5
						}
					}
				}
				printf("Ket qua:");
				for(i=0;i<total;i++) {
					printf("%d, ", t[i]);
				}
				break;
			case 5:
				printf("Thoat!");
				break;
			default:
				printf("Nhap sai!");
				break;
		}
	} while(choose != 5);
	
	return 0;
}


Bình luận



Đã sao chép!!!