Yêu cầu:
– Sắp xếp các phần tử âm dương trong mảng
– Viết hàm sắp xếp các phần tử âm giảm dần từ trái sang phải, phần tử dương tăng dần từ phải sang trái.
Thuật toán:
– Sử dụng thuật toán sắp xếp bubble sort.
Code:
/************************************************************ * Author: VNCODING * History * 2014/10/05 first create VNCODING *************************************************************/ #include "stdio.h" #include "conio.h" #define LEN_MAX 100 // do dai toi da cua mang void sort_array(int A[], int len); void main() { int arr[LEN_MAX]; int n; int i; do { printf("\nNhap kich thuoc mang: "); scanf("%d", &n); } while (n > LEN_MAX || n <= 0); //Nhap du lieu cho day so for (i = 0; i < n; i++) { printf("\nA[%d] = ", i); scanf("%d", &arr[i]); } sort_array(arr, n); printf("\nDay so sau khi sap xep: "); for (i = 0; i < n; i++) { printf("\nA[%d] = %d", i, arr[i]); } getch(); } void sort_array(int A[], int len) { int i,j; int temp; // Thuat toan bubble sort for (i = 0; i < len - 1; i++) for(j = i+1; j < len; j++) if(A[i] < A[j] && ((A[i] < 0 && A[j] < 0) || (A[i] >= 0 && A[j] >= 0))) { temp = A[j]; A[j] = A[i]; A[i] = temp; } }
Kết quả:
Nhap kich thuoc mang: 8 A[0] = 0 A[1] = -5 A[2] = -8 A[3] = 3 A[4] = 7 A[5] = 2 A[6] = 67 A[7] = 12 Day so sau khi sap xep: A[0] = 67 A[1] = -5 A[2] = -8 A[3] = 12 A[4] = 7 A[5] = 3 A[6] = 2 A[7] = 0
Leave a Reply
You must be logged in to post a comment.