THÔNG TIN CHI TIẾT
Bài tập xử lý mảng một chiều  Cập nhật :25/10/2013  
Mảng, mảng một chiều
Mảng một chiều trong C là một trong những phần cơ bản và cốt lõi của lập trình. Trong một số trường hợp cần thiết phải lưu trữ nhiều phần tử có cùng một kiểu dữ liệu người ta dùng mảng để lưu. Mỗi phần tử mảng một số thứ tự gọi là chỉ số để xác định vị trí của các phần tử …
 
Các khái niệm liên quan đến mảng:
Array: là một nhóm các phần tử có cùng kiểu và chung tên
Element: phần tử của mảng. Có thể là những kiểu dữ liệu cơ bản như int, long, char,… hoặc các kiểu do người dùng định nghĩa
Index: số nguyên thể hiện vị trí của phần tử xác định. Trong C chỉ số (index) bắt đầu bằng 0
Demension: chiều của mảng, cũng chính là số lượng các chỉ số giúp ta xác định một phần tử của mảng. Mảng 1 chiều cần 1 chỉ số, 2 chiều cần 2 chỉ số 
  
Quản lý phần tử mảng một chiều
Một mảng có thể chứa số lượng phần tử tối đa xác định gọi là kích thước mảng
Tại một thời điểm, nó có thể chứa một số phần tử xác định nên khai báo như sau:
1
2 int a[100];//khai báo 1 mảng a bao gồm kích thước.
int n;//số phần tử trong mảng.
Nhập mảng trong C
<!--
void NhapMang(int a[], int &n)
{
    int i;
    printf("Nhap n:");
    scanf("%d", &n);
    for (i=0; i<n; i++)      
        {
             printf("a[%d]=", i);
             scanf("%d", &a[i]);
        }
}
Xuất mảng trong C
<!--
void XuatMang(int a[], int n)
{
     int i;
     for (i=0; i<n; i++)
         printf("%d ", a[i]);
}
 
Bài tập áp dụng: Viết chương trình tìm phần tử lớn nhất trong mảng.
<!--
int MaxMang(int & n, int a[])
{
    int max= a[0];
    for(int i=0; i<n; i++)
    {
             if(max < a[i])
             max = a[i];
        }
        return max;
}
Sắp xếp mảng dùng thuật toán Bubble sort.
<!--
//Hàm Bubble sort:
void BubbleSort(int a[], int n)
{
    int i,j,tam;
    for (i=0; i<n-1; i++)
            for (j=n-1; j>i;j--)
            if(a[j]<a[i]) //hoan vi 2 so a[i], a[j]
            {
                 tam=a[i];
                 a[i]=a[j];
                 a[j]=tam;
            }
}
Giải thích: không cách nào ta sẽ cho ví dụ một mảng và chạy ct để hiểu rõ thuật toán.
Mảng a có 5 phần tử: 4 6 2 7 9
Sắp xếp:
i=0:
j=4: 4 6 2 7 9
j=3: 4 6 2 7 9
j=2: 2 6 4 7 9
j=1: 2 6 4 7 9
i=1:
j=4: 2 6 4 7 9
j=3: 2 6 4 7 9
j=2 2 4 6 7 9
i=2:
j=4: 2 4 6 7 9
j=3: 2 4 6 7 9
i=3:
j=4: 2 4 6 7 9
Kết luận:
Vậy là ta đã tìm hiểu mảng và mảng một chiều, để hiểu rõ hơn tôi nghĩ các bạn nên là các bài tập dưới đây. Hãy comment góp ý nha!
Bài tập:
Làm lại các bài tập trên, viết các hàm con cho từng chức năng:
Nhập mảng
Xuất mảng
Tổng các phần tử trong mảng
Trung bình của các phần tử trong mảng
Tổng các phần tử lẻ trong mảng
Đếm các phần tử không âm
Kiểm tra xem mảng có đối xứng hay không
Nhập vào giá trị x. Tìm xem x có trong mảng hay không
Nhập vào giá trị x. Đếm số lần xuất hiện của x trong mảng
Kiểm tra mảng có phải là mảng tăng hay không
 
THÔNG TIN MỚI KHÁC
Những tai nạn "phòng the" có thể khiến bạn mất mạng -12/10/2019
Những sự thật về phương pháp tránh thai phổ biến nhất -28/09/2019
Vì sao đèn xi-nhan lại có màu da cam? -28/09/2019

Chia sẻ đến
THÔNG TIN