Bài tập thực hành: Đếm số lần xuất hiện của từng phần tử trong mảng - Lập trình C - Code Block - Cách làm 1
BÀI TẬP THỰC HÀNH ĐẾM SỐ LẦN XUẤT HIỆN CỦA TỪNG PHẦN TỬ TRONG MẢNG
YÊU CẦU
· Nhập một mảng từ bàn phím
· Cho biết:
o Từng phần tử của mảng xuất hiện bao nhiêu lần trong mảng.
o In ra danh sách gồm 2 cột: Giá trị phần tử và số lần xuất hiện
Khai báo sử dụng thư viện
#include <conio.h>
#include <stdio.h>
|
Khai báo một mảng các phần tử kiểu int với số lượng là 10 phần tử.
int ds[10];
int n;
|
Nhập vào số lượng phần tử của mảng
//Hien thong bao moi nguoi dung nhap
printf("Nhap so luong phan tu:");
//Nhap vao tu ban phim
scanf("%d",&n);
|
Nhập mảng từ bàn phím
for(int i = 0;i<10; i++)
{
printf("Nhap ds [%d]:",i);
scanf("%d",&ds[i]);
}
|
Hiện mảng đã nhập
printf("Danh sach da nhap la:");
for (int i = n-1;i>=0;i--)
{
printf("ds[%d]=%d\n",i,ds[i]);
}
|
Khai báo một biến để lưu trữ số lần xuất hiện của từng phần tử
int soluong = 0;
|
Thực hiện Tìm kiếm trên danh sách
Lần lượt duyệt qua từng phần tử trong mảng đã cho, với mỗi phần tử đó sẽ thực hiện:
+ Khởi tạo 1 biến đếm cho bằng 0
+ Chạy từ đầu đến cuối mảng đã cho để kiểm tra:
+ Nếu gặp phần tử nào bằng thì biến đếm tăng lên 1.
+ In ra phần tử + số lần sau đó xuống dòng
Code như sau:
for (int i = 0;i<n;i++)
{
soluong = 0;
for (int j = 0; j<n; j++)
{
if (ds[i] == ds[j])
{
soluong = soluong+1;
}
}
//In ra
printf("Gia tri [%d] xuat hien [%d] lan\n",ds[i], soluong); }
|
Tổng hợp Code
#include <stdio.h>
#include <conio.h>
int main()
{
int ds[10];
//Hien thong bao moi nguoi dung nhap
printf("Nhap so luong phan tu:");
//Nhap vao tu ban phim
scanf("%d",&n);
//In n ra
printf("n=%d\n",n);
//Nhap cac phan tu trong mang
for (int i = 0; i<n; i++)
{
//In ra loi huong dan nhap phan tu thu may
printf("Nhap phan tu thu [%d]:",i+1);
scanf("%d",&ds[i]);
}
//In ra danh sach
printf("Danh sach da nhap la:");
for (int i = n-1;i>=0;i--)
{
printf("ds[%d]=%d\n",i,ds[i]);
}
printf("In danh sach phan tu trong mang:\n");
int soluong = 0;
for (int i = 0;i<n;i++)
{
soluong = 0;
for (int j = 0; j<n; j++)
{
if (ds[i] == ds[j])
{
soluong = soluong+1;
}
}
//In ra
printf("Gia tri [%d] xuat hien [%d] lan\n",ds[i], soluong);
}
getch();
}
|

No comments: