Trong bài này bọn họ sẽ học tập cách thực hiện mảng một chiều và mảng 2d trong thiết kế c. Một mảng được thực hiện để tàng trữ tập đúng theo dữ liệu, dẫu vậy nó rất hữu dụng nếu chúng ta nghĩ về một mảng những biến với cùng một kiểu.

Bạn đang xem: Cách dùng mảng trong c

Bài 12 Trong học lập trình C từ A tới Z


Mảng là gì?

Mảng (Array) là 1 trong tập vừa lòng tuần trường đoản cú các bộ phận có cùng kiểu dữ liệu và các bộ phận được lưu trữ trong một dãy những ô nhớ liên tiếp trên bộ nhớ. Các thành phần của mảng được truy vấn cập bằng phương pháp sử dụng “chỉ số”. Mảng có form size N sẽ sở hữu được chỉ số trường đoản cú 0 cho tới N – 1.

Thay vì khai báo trở thành một bí quyết rời rạc, như đổi mới number0, number1,… và number99, bạn cũng có thể khai báo một mảng các giá trị như numbers<0>, numbers<1> với … numbers<99> nhằm biểu diễn những giá trị riêng rẽ biệt. Một thành phần ví dụ của mảng hoàn toàn có thể được truy vấn qua index (chỉ số).

Tất cả mảng đều bao hàm các vị trí nhớ sát nhau. Địa chỉ phải chăng nhất tương xứng với yếu tố đầu chi phí và địa chỉ cửa hàng cao nhất khớp ứng với thành phần ở đầu cuối của mảng.

Cú pháp khai bảo mảng 1 chiều

*

Trong đó:

Array vriable: là tên gọi mảngindex là trị số của mảng, chính là vị trí trong mảng

VD: Khai báo mảng không có giá trị int sohangban<10>;

Khai báo mảng có giá trị: int sohangban<5> = 34, 56, 23, 124, 67;

Số lượng những giá trị trong vệt ngoặc kép không được to hơn số lượng bộ phận khai báo trong dấu ngoặc vuông <>.

Nếu bạn bỏ sót size mảng thì mảng đó đủ mập để giữ những giá trị được khởi tạo: int sohangban<> = 34, 56, 23, 124, 67;

Truy cập các phần tử mảng một chiều trong C

Một mảng được truy vấn bởi giải pháp đánh chỉ số trong thương hiệu của mảng. Dưới đây là một cách truy cập một cực hiếm của mảng:

int luonghangban = sohangban<9>;Ngoài ra họ cũng rất có thể truy cập mảng bởi con trỏ, vẫn học vào phần lớn phần sau

Ví dụ: Nhập và in ra hàm

#include int main () int n< 10 >; /* có n gom 10 so nguyen */ int i,j; /* khoi tao cac phan tu trong sở hữu ve gia tri 0 */ for ( i = 0; i Kết quả

*

Bài tập nhập, tra cứu kiếm cùng in ra thành phần của mảng

Trong bài xích này, bọn họ sẽ học biện pháp nhập thành phần vào mảng, tìm kiếm với in ra

#include const int MAX = 100; void Nhap
Mang(int a<>, int n) for(int i = 0;i MAX) printf("
Nhap lai so luong phan tu: "); while(n MAX); printf(" ======NHAP MANG===== "); Nhap
Mang(arr, n); printf(" ======XUAT MANG===== "); Xuat
Mang(arr, n); printf(" ======TIM KIEM====== "); int v; printf("
Nhap vao gia tri can tim: "); scanf("%d", &v); printf("
Tim thay so %d tai chi so %d!", v, Tim
Kiem(arr, n, v));

Kết quả

Nhap so luong phan tu: 6======NHAP MANG=====Nhap phan tu a<0> = 1Nhap phan tu a<1> = 2Nhap phan tu a<2> = 5Nhap phan tu a<3> = 7Nhap phan tu a<4> = 8Nhap phan tu a<5> = 2======XUAT MANG=====Phan tu a<0> = 1Phan tu a<1> = 2Phan tu a<2> = 5Phan tu a<3> = 7Phan tu a<4> = 8Phan tu a<5> = 2======TIM KIEM======Nhap vao gia tri can tim: 5Tim nạm so 5 tai đưa ra so 2!

Khai báo mảng nhiều chiều trong lập trình C

Mảng đa chiều (multi-dimensional array) là một trong biến thể của mảng, trong đó mảng 3d được áp dụng nhiều nhất, rất tương xứng để truy vấn như một bảng dữ liệu. Thực tế mảng nhiều chiều cũng chính là mảng một chiều nhưng khai báo không giống nhau 1 chút cơ mà thôi

*

Cú pháp khai báo: type arr;

Khi khởi tạo ra mảng 2d có 2 phương thức khới tạo giá trị.

Khởi tạo ra kiểu mảng 1 chiều

int x<3><4> = 0, 1 ,2 ,3 ,4 , 5 , 6 , 7 , 8 , 9 , 10 , 11Khởi chế tạo kiểu mảng nhiều chiều

int x<3><4> = 0,1,2,3, 4,5,6,7, 8,9,10,11;

Ví dụ: Nhập mảng 2 chiều

#include int main (){ int a<5><2> = 0,0, 1,2, 2,4, 3,6,4,8; // hien thi gia tri cua cac phan tu trong mang for ( int i = 0; i Kết quả

*

Bài tập nhập, search kiếm với xuất quý hiếm mảng 2 chiều

Trong bài bác này, bọn họ sẽ học biện pháp nhập bộ phận vào mảng, tìm kiếm với in ra

#include #include void Nhap
Ma
Tran(int a<><100>, int m, int n){ for(int i = 0; i Tim
Kiem(int a<><100>, int m, int n, int v) for(int i = 0; i rs = Tim
Kiem(a, m, n, v); printf("
Tim rứa so %d tai hang %d, cot %d!", v, rs.first, rs.second);Kết quả

nhap so hang n = 4nhap so cot m = 3nhap vao ma tran:A<0><0> = 1A<0><1> = 2A<0><2> = 3A<0><3> = 4A<1><0> = 5A<1><1> = 6A<1><2> = 7A<1><3> = 8A<2><0> = 1A<2><1> = 21A<2><2> = 4A<2><3> = 441 2 3 45 6 7 81 21 4 44Nhap vao gia tri can tim: 6Tim núm so 6 tai hang 1, cot 1!

Kết

Mảng một chiều và mảng 2d được áp dụng rất nhiều khi lưu trữ dữ liệu, phía trên cũng là 1 trong kiểu dữ liệu trong cấu tạo dữ liệu cơ mà các các bạn sẽ học ở hồ hết phần sau.

Nếu thấy hữu dụng hãy chia sẻ bài viết và gia nhập nhóm Nghiện Lập Trình để giao lưu và học hỏi và giao lưu nhé

1. Mảng vào C là gì?1.5 Đầu vào và áp ra output của các phần tử của mảng2. Mảng nhiều chiều trong thiết kế C2.1 Khởi tạo thành một mảng đa chiều3. Hàm với mảng vào C3.1 Truyền những mảng vào hàm trong lập trình sẵn CTruyền các phần tử mảng riêng biệt lẻ
Truyền mảng đa chiều vào một trong những hàm

Trong bài viết này, các bạn sẽ được khám phá về cách thao tác làm việc với những mảng vào C (ngôn ngữ lập trình), giải pháp khai báo, khởi sản xuất và truy cập vào từng bộ phận của một mảng vào C trải qua các ví dụ.

*
*

1. Mảng vào C là gì?

Mảng trong C là 1 trong biến hoàn toàn có thể lưu trữ những giá trị. Ví dụ, nếu như muốn lưu trữ 100 số nguyên, bạn có thể tạo một mảng để tàng trữ chúng.

int data<100>;

1.1 làm sao để khai báo mảng vào C?

data
Type array
NameSize>;

Ví dụ,

float mark<5>;

Trong lấy ví dụ này, tôi vẫn khai báo mảng mark của dạng hình floating-point. Và form size của nó là 5. Gồm nghĩa là, nó hoàn toàn có thể chứa được 5 quý giá số thực.

Điều quan trọng đặc biệt nhất mà bạn phải lưu ý đó là bạn ko thể biến hóa được size và giao diện của một mảng sau khoản thời gian đã khai báo xong.

1.2 truy vấn vào các thành phần của mảng

Bạn hoàn toàn có thể truy cập vào các phần tử của mảng bằng những chỉ mục. Giả sử các bạn đã khai báo mảng mark như trên. Bộ phận đầu tiên đó là mark<0>, bộ phận thứ 2 đó là mark<1>,…

Cụ thể là:

Các mảng có số 0 được xem như là chỉ mục đầu tiên. Ví dụ mark<0> là thành phần đầu tiên
Nếu kích cỡ của một mảng là n, để truy vấn vào phần từ thời điểm cuối cùng, thì bạn phải sử dụng n-1 chỉ mục. Trong lấy ví dụ này, đó là mark<4>Giả sử add bắt đầu của mark<0> là 2120d. Sau đó, địa chỉ của mark<1> đang là 2124d. Tương tự, địa chỉ của mark<2> đang là 2128d,…

Lưu ý, kích thước của một phát triển thành float là 4 byte.

1.3 Làm cầm cố nào để tạo một mảng vào C?

Bạn rất có thể khởi tạo ra một mảng trong quy trình khai báo. Ví dụ,

int mark<5> = 19, 10, 8, 17, 9;

Bạn rất có thể khởi sinh sản một mảng như sau

int mark<> = 19, 10, 8, 17, 9;

Trong lấy ví dụ như này, tôi chưa chỉ định size cụ thể. Tuy nhiên, trình biên dịch đang biết được size của mảng này là 5 vày tôi đang khởi chế tác nó với 5 thành phần là

mark<0> is equal to 19

mark<1> is equal lớn 10

mark<2> is equal khổng lồ 8

mark<3> is equal lớn 17

mark<4> is equal lớn 9

1.4 biến đổi giá trị của các phần tử của mảng

int mark<5> = 19, 10, 8, 17, 9

// make the value of the third element to lớn -1

mark<2> = -1;

// make the value of the fifth element lớn 0

mark<4> = 0;

1.5 Đầu vào và đầu ra của các phần tử của mảng

Dưới đấy là cách mà bạn có thể lấy tài liệu mà người dùng nhập vào và tàng trữ nó trong một trong những phần tử mảng.

Xem thêm: Grab Xe Ôm Giá Rẻ Tphcm - Grabbike: Dịch Vụ Đặt Xe Máy Theo Yêu Cầu

// take input & store it in the 3rd element

​scanf(“%d”, &mark<2>);

// take input & store it in the ith element

scanf(“%d”, &mark);

Còn dưới đấy là cách mà chúng ta cũng có thể in một trong những phần tử biệt lập của một mảng.

// print the first element of the array

printf(“%d”, mark<0>);

// print the third element of the array

printf(“%d”, mark<2>);

// print ith element of the array

printf(“%d”, mark);

Ví dụ 1: Đầu vào và cổng output của mảng

// Program to lớn take 5 values from the user & store them in an array

// Print the elements stored in the array

#include

int main() {

int values<5>;

printf(“Enter 5 integers: “);

// taking input & storing it in an array

for(int i = 0; i Ví dụ 2: Tính mức độ vừa phải cộng

// Program khổng lồ find the average of n numbers using arrays

#include

int main()

{

int marks<10>, i, n, sum = 0, average;

printf(“Enter number of elements: “);

scanf(“%d”, &n);

for(i=0; i1.6 truy vấn vào các phần tử bên ngoài giới hạn

Giả sử chúng ta khai báo mảng trong C có 10 phần tử

int test
Array<10>;

Bạn hoàn toàn có thể truy cập vào các phần từ bỏ mảng từ test
Array<0> cho test
Array<9>.

Trường đúng theo nếu bạn nỗ lực truy cập test
Array<12>, thì thành phần này không sẵn có. Điều này dẫn đến việc đầu ra mà bạn nhận được sẽ không đúng như ước ao đợi. Hoặc rất có thể lập trình sẽ ảnh hưởng lỗi, mà lại trong một trong những trường hợp, thiết kế của bạn cũng có thể chạy chủ yếu xác.

Do đó, các bạn không nên truy vấn vào các thành phần mảng nằm phía bên ngoài giới hạn.

2. Mảng nhiều chiều trong xây dựng C

Trong phần này, các bạn sẽ được học tập cách thao tác với mảng đa chiều (mảng hai hoặc cha chiều) trải qua các ví dụ.

Trong lập trình C, bạn cũng có thể tạo một mảng bao hàm nhiều mảng. đông đảo mảng này được điện thoại tư vấn là mảng đa chiều. Ví dụ,

float x<3><4>;

Trong lấy ví dụ như này, x là một trong mảng 2 chiều(2d). Mảng này chứa 12 phần tử. Mảng này hệt như một bảng bao gồm 3 hàng và mỗi hàng tất cả 4 cột.

Bạn cũng rất có thể khai báo một mảng cha chiều theo cách tương tự như trên. Ví dụ,

float y <2> <4> <3>;

Ở đây, mảng y có thể chứa 24 phần tử.

2.1 Khởi tạo một mảng đa chiều

Dưới đây là phương pháp để khởi tạo ra mảng hai chiều và mảng cha chiều:

Khởi sản xuất mảng 2 chiều

// Different ways khổng lồ initialize two-dimensional array

int c<2><3> = 1, 3, 0, -1, 5, 9;

int c<><3> = 1, 3, 0, -1, 5, 9;

int c<2><3> = 1, 3, 0, -1, 5, 9;

Khởi tạo nên mảng 3 chiều

Bạn có thể khởi tạo thành mảng 3d theo cách tựa như như khởi tạo ra mảng 2 chiều. Ví dụ,

int test<2><3><4> =

3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 2,

13, 4, 56, 3, 5, 9, 3, 5, 3, 1, 4, 9;

Ví dụ 1: mảng 2 chiều dùng để lưu trữ và in các giá trị

// C program lớn store temperature of two cities of a week và display it.

#include

const int thành phố = 2;

const int WEEK = 7;

int main()

{

int temperature;

// Using nested loop lớn store values in a 2d array

for (int i = 0; i Ví dụ 2: Tổng của 2 ma trận

// C program to lớn find the sum of two matrices of order 2*2

#include

int main()

{

float a<2><2>, b<2><2>, result<2><2>;

// Taking input đầu vào using nested for loop

printf(“Enter elements of 1st matrix ”);

for (int i = 0; i Ví dụ 3: Mảng ba chiều

// C Program khổng lồ store & print 12 values entered by the user

#include

int main()

{

int test<2><3><2>;

printf(“Enter 12 values: ”);

for (int i = 0; i 3. Hàm với mảng trong C

3.1 Truyền các mảng vào hàm trong thiết kế C

Trong phần này, các bạn sẽ được học phương pháp truyền các mảng (cả mảng một chiều với mảng nhiều chiều) vào hàm trong lập trình C thông qua các ví dụ.

Trong lập trình sẵn C, bạn có thể truyền toàn thể mảng vào những hàm. Trước tiên, tôi sẽ giới thiệu cho mình về cách để truyền các thành phần riêng lẻ của một mảng vào các hàm.

Truyền các thành phần mảng riêng biệt lẻ

Truyền các thành phần mảng vào hàm tương tự như truyền các biến vào hàm.

Ví dụ 1: Truyền một mảng

#include

void display(int age1, int age2)

printf(“%d ”, age1);

printf(“%d ”, age2);

int main()

int age
Array<> = 2, 8, 4, 12;

// Passing second và third elements lớn display()

display(age
Array<1>, age
Array<2>);

return 0;

Đầu ra

8

4

Ví dụ 2: Truyền những mảng cho nhiều hàm

// Program khổng lồ calculate the sum of array elements by passing khổng lồ a function

#include

float calculate
Sum(float age<>);

int main()

float result, age<> = 23.4, 55, 22.6, 3, 40.5, 18;

// age array is passed lớn calculate
Sum()

result = calculate
Sum(age);

printf(“Result = %.2f”, result);

return 0;

float calculate
Sum(float age<>) {

float sum = 0.0;

for (int i = 0; i Truyền mảng đa chiều vào một trong những hàm

Để truyền mảng nhiều chiều vào trong 1 hàm, bạn chỉ việc truyền tên của mảng vào hàm là được (tương từ như mảng một chiều).