Khởi tạo một mảng gồm n (n ≤ 99) số tự nhiên. Nhập một số tự nhiên x từ bàn phím sau đó xóa tất cả các phần tử có giá trị x trong mảng. Chú ý:thông báo ra màn hình số phần tử bị xóa.
Mảng được khởi tạo là: 4 8 2 7 8 5 Nhập vào giá trị phần tử cần xóa: 8 Mảng sau khi xóa các phần tử có giá trị 8: 4 2 7 5 Có 2 phần tử bị xóa khỏi mảng.
Duyệt từng phần tử từ cuối (n-1) trở về đầu (0). Tại mỗi phần tử a[i], nếu có giá trị bằng x thì xóa phần tử này khỏi mảng (cách xóa như ở câu trên).
Code:
Nguồn: Agreenet#include <stdio.h>#include <conio.h>intmain(){inta[99] = { 4, 8, 2, 7, 8, 5 };intn = 6, i, j, x, dem;printf("Mang duoc khoi tao la: ");for(i = 0; i < n; i++)printf("%d ", a[i]);printf("\nNhap gia tri phan tu can xoa: ");scanf("%d", &x);i = n-1; dem = 0;while(i >= 0)//khi chưa hết mảng{if(a[i] == x)//nếu tìm được phần tử =x{for(j = i; j < n - 1; j++)//xóa phần tử vị trí ia[j] = a[j + 1];n--;dem++;}elsei--;//nếu a[i]<>x thì cứ cho i chạy tiếp}printf("Mang sau khi xoa cac phan tu co gia tri %d la: ", x);for(i = 0; i < n; i++)printf("%d ", a[i]);printf("\nCo %d phan tu bi xoa khoi mang.", dem);getch();}