RSSLập trình C - C++

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ố [...]

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ử …

Trước khi đến với bài này các bạn phải hiểu được cách khai báo biếnnhập xuất cơ bản trong C.

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:

      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:

  1. Nhập mảng
  2. Xuất mảng
  3. Tổng các phần tử trong mảng
  4. Trung bình của các phần tử trong mảng
  5. Tổng các phần tử lẻ trong mảng
  6. Đếm các phần tử không âm
  7. Kiểm tra xem mảng có đối xứng hay không
  8. Nhập vào giá trị x. Tìm xem x có trong mảng hay không
  9. Nhập vào giá trị x. Đếm số lần xuất hiện của x trong mảng
  10. Kiểm tra mảng có phải là mảng tăng hay không
VN:F [1.9.22_1171]
Rating: 8.9/10 (17 votes cast)
Mảng, mảng một chiều, 8.9 out of 10 based on 17 ratings

Tags:

100 out of 100 based on 2011 user ratings
Nếu bạn thấy bài viết hữu ích, hãy nhấn +1 và các liên kết chia sẻ để website ngày càng phát triển hơn. Xin cám ơn bạn!

Nếu là khách, bạn phải đăng ký tài khoản và kích hoạt tài khoản để bình luận được hiển thị ở đây.
Thông tin kích hoạt gửi đến mail của bạn.

Tin mới hơn

Tin cũ hơn

Lên trên đầu