Yêu cầu:
– Nhập vào giá trị X. Viết hàm xoá tất cả các phần tử có giá trị nhỏ hơn X.
Thuật toán:
– Kiểm tra điều kiện: A[i] < x và xóa phần tử A[i].
Code:
/************************************************************ * Author: VNCODING * History * 2014/10/23 first create VNCODING *************************************************************/ #include <stdio.h> #include <conio.h> void print_arr(int A[], int n); void delete_below_x(int A[], int* n, int x); void main() { int A[] = {1, 4, -9, 0, 7, 11, 8, 4}; int n = sizeof(A)/sizeof(int); print_arr(A, n); delete_below_x(A, &n, 7); print_arr(A, n); getch(); } void delete_below_x(int A[], int* n, int x) { int i, j; for(i = *n - 1; i >= 0; i--) { if(A[i] < x) { for(j = i; j < *n - 1; j++) { A[j] = A[j+1]; } (*n)--; } } } void print_arr(int A[], int n) { int i; printf("\n========================="); for(i = 0; i < n; i++) { printf("\nA[%d] = %d", i, A[i]); } printf("\n========================="); }
Kết quả:
========================= A[0] = 1 A[1] = 4 A[2] = -9 A[3] = 0 A[4] = 7 A[5] = 11 A[6] = 8 A[7] = 4 ========================= ========================= A[0] = 7 A[1] = 11 A[2] = 8 =========================
bên kia em post nhầm bài a , e muốn hỏi cách làm này ấy ạ cái dùng for chạy ngược từ dưới lên kiểm tra xog rồi mới fix lại a cho e hỏi a dựa vào thuật toán nào ko ạ hay tự suy nghĩ ra ạ
Đây là kĩ thuật dồn mảng thôi em