Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 1/ Nhập mảng
- 2/ Xuất mảng
- 3/ Tìm kiếm một phần tử trong mảng
- 4/ Kiểm tra tính chất của mảng
- 5/ Tách mảng / Gộp mảng
- 6/ Tìm giá trị nhỏ nhất/lớn nhất của mảng
- 7/ Sắp xếp mảng giảm dần/tăng dần
- 8/ Thêm/Xóa/Sửa một phần tử vào mảng
- */
- #include <stdio.h>
- #include <conio.h>
- #define MAX 100
- int i;
- //Nhap mang
- void input(int a[], int n)
- {
- // Vong lap nhap mang
- for(i = 0; i < n; i++)
- {
- printf("\nNhap vao phan tu a[%d]: ", i+1); scanf("%d", &a[i]); // nhap mang
- }
- }
- // Xuat mang
- void output(int a[], int n)
- {
- // Vong lap xuat mang
- for(i = 0; i < n; i++)
- printf("%3d", a[i]);
- printf("\n");
- }
- // Ham tim kiem một phần tử trong mảng
- bool timkiem(int a[], int n, int &x)
- {
- // Vòng lặp tìm kiếm
- for(i = 0; i < n; i++)
- {
- if (a[i] == x) // Nếu có một phần tử trong mảng bằng với x thì trả về true sau đó thoát ra khỏi hàm
- return true;
- }
- return false;// Ngược lại thì trả về false và kết thúc hàm
- }
- // Hàm kiểm tra tính chất của mảng
- bool kiemtra(int a[], int n)
- {
- // Vòng lặp kiểm tra tính chất
- for(i = 0; i < n; i++)
- {
- if (a[i] < 0) // Nếu chỉ có một phần từ trong mảng < 0 thì trả về false và kết thúc hàm
- return false;
- }
- return true; // Ngược lại trả về true và kết thúc hàm
- }
- // Hàm tách mảng cac phần tử âm
- void TachMang(int a[], int n, int temp[], int &ntemp)
- {
- ntemp = 0; // Đầu tiên phải cho ntemp = 0 vì nếu không thì nó sẽ nhận giá trị rác
- // Vòng lặp tách mảng
- for(i = 0; i < n; i++)
- if(a[i] < 0) // kiểm tra xem phần từ có < 0
- temp[ntemp++] = a[i];
- /*************************\ Giải thích: Phải có mảng temp vì chúng ta phải tách mảng a ra sang 1 mảng khác
- /* Tương đương như code:*\ Sau đó cho ntemp tăng lên 1 tương ứng với phần tử a[i]
- /* temp[ntemp] = a[i]; *\
- /* ntemp++; *\ Ví dụ: Cho a[i] = 1, 2, -3, -4, 5 <=> phần tử từ 0, 1, 2, 3, 4
- /*************************\ Vì vậy cũng như temp[ntemp++] nó cũng sẽ tăng ntemp lên một phần tử nếu nhận được giá trị đó đúng ở điều kiện
- Cho nên ntemp sẽ nhận giá trị -3 và -4 để lưu vào mảng với phần tử là 0, 1*/
- }
- int main()
- {
- int a[MAX], n, x, temp[MAX], ntemp;
- bool check, kt;
- do{
- printf("\nNhap vao so luong phan tu: "); scanf("%d", &n);
- if(n < 0 || n > MAX)
- printf("\nBan da nhap sai xin hay nhap lai!");
- } while(n < 0 || n > MAX);
- input(a, n);
- output(a, n);
- printf("\nNhap vao phan tu muon tim kiem: "); scanf("%d", &x);
- check = timkiem(a, n, x);
- if(check == true)
- printf("\nCo phan tu %d trong mang", x);
- else
- printf("\nKhong co phan tu %d trong mang", x);
- kt = kiemtra(a, n);
- if(kt == false)
- printf("\n\nDay la mang am\n");
- else
- printf("\n\nDay la mang duong\n");
- printf("Mang a sau khi tach la: \n");
- TachMang(a, n, temp, ntemp);
- output(temp, ntemp);
- /*for(i = 0; i < ntemp; i++)
- printf("%3d", temp[i]);*/
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement