Mảng Một Chiều

Sign in Sign in Welcome!Log into your account your username your password Forgot your password? Password recovery Recover your password your email Search Thursday, December 25, 2025
  • Sign in / Join
Sign in Welcome! Log into your account your username your password Forgot your password? Get help Password recovery Recover your password your email A password will be e-mailed to you. sinhvientot.net sinhvientot.net sinhvientot.net sinhvientot.net Home Lập trình C/C++ Mảng một chiều Facebook Twitter Pinterest WhatsApp

Trong lập trình việc sử dụng mảng một chiều là điều thiết yếu, sau đây sinhvientot.net sẽ gởi đến các bạn cách thức để làm chủ mảng một chiều…

Định nghĩa và khai báo mảng 1 chiều

Khái niệm

  • Là một kiểu dữ liệu có cấu trúc do người lập trình định nghĩa.
  • Biểu diễn một dãy các biến có cùng kiểu. Ví dụ: dãy các số nguyên, dãy các ký tự…
  • Kích thước được xác định ngay khi khai báo và không bao giờ thay đổi.
  • NNLT C luôn chỉ định một khối nhớ liên tục cho một biến kiểu mảng.

Khai báo biến mảng (tường minh)

  • Tường minh
    • <N1>, …, <Nn> : số lượng phần tử của mỗi chiều.
  • Lưu ý
    • Phải xác định <số phần tử> cụ thể (hằng) khi khai báo.
    • Bộ nhớ sử dụng = <tổng số phần tử>*sizeof(<kiểu cơ sở>)
    • Một dãy liên tục có chỉ số từ 0 đến <tổng số phần tử>-1

Ví dụ:

image002

Khai báo biến mảng (không tường minh)

  • Cú pháp
    • Không tường minh (thông qua khai báo kiểu)
typedef <kiểu cơ sở> <tên kiểu mảng>[<số phần tử>]; typedef <kiểu cơ sở> <tên kiểu mảng>[<N1>]…[<Nn>]; <tên kiểu mảng> <tên biến mảng>; VD: typedef int Mang1Chieu[10];

Số phần tử của mảng

  • Phải xác định cụ thể số phần tử ngay lúc khai báo, không được sử dụng biến hoặc hằng thường
int n1 = 10; int a[n1]; const int n2 = 20; int b[n2];
  • Nên sử dụng chỉ thị tiền xử lý #define để định nghĩa số phần tử mảng
#define n1 10 #define n2 20 int a[n1];                    // <=> int a[10]; int b[n1][n2];            //  <=>  int b[10][20]; image004

Khởi tạo giá trị cho mảng lúc khai báo

  • Gồm các cách sau
    • Khởi tạo giá trị cho mọi phần tử của mảng
image005
  • Khởi tạo giá trị cho một số phần tử đầu mảng
image007
  • Khởi tạo giá trị 0 cho mọi phần tử của mảng
image008
  • Tự động xác định số lượng phần tử
image009

Truy xuất đến một phần tử

image010

Gán dữ liệu kiểu mảng

  • Không được sử dụng phép gán thông thường mà phải gán trực tiếp giữa các phần tử tương ứng
image011
  • Ví dụ: Nhập mảng có n phần tử kiểu nguyên, in ra các phần tử của mảng
    • Cách 01: viết trong hàm main
#include <stdio.h> #define MAX 1000 void main() { int ary[MAX]; int i,n; printf("\nNhap so phan tu cho mang n = "); scanf("%d",&n); printf("\nNhap gia tri cho cac phan tu mang"); for(i=0; i<n; i++) { printf("\n Enter value: %d : ", i+1); scanf("%d",&ary[i]); } printf("\n Xuat mang"); for(i=0; i<n; i++) printf("a[%d]=%d\n",i, ary[i]); }

Cách 02: viết trong hàm con, đứng trong hàm main gọi hàm con

//Bước 1: Tạo một Project mới //Bước 2: Khai báo thêm các thư viện cơ bản cho chương trình. #include <conio.h> #include <stdio.h> //Bước 3: Khai báo hằng số cho chương trình. #define MAXSIZE 1000 //Bước 4: Viết các khai báo nguyên mẫu hàm(prototype) cho chương trình như sau: void NhapMang1C_SoNguyen(int a[], int &n); void XuatMang1C_SoNguyen(int a[], int n); //Bước 5: Viết hàm main để thực thi chương trình. void main() { int A[MAXSIZE]; int N; NhapMang1C_SoNguyen(A, N); printf("\nNoi dung cua mang la: "); XuatMang1C_SoNguyen(A, N); _getch(); } //Bước 6: Viết các định nghĩa hàm cần thiết cho chương trình như sau: void NhapMang1C_SoNguyen(int a[], int &n) { printf("Cho biet so phan tu cua mang: "); scanf_s("%d", &n); for(int i=0; i<n; i++) { printf("Gia tri phan tu a[%d]=", i); scanf_s("%d", &a[i]); } } //======================================================================= void XuatMang1C_SoNguyen(int a[], int n) { for(int i=0; i<n; i++) printf("%4d", a[i]); }

Những thao tác trên mảng:

image013 Ví dụ: image015  Tham số mảng của một hàm image017 Bài tập mẫu Bài 1: Viết chương trình nhập các giá trị cho mảng 1 chiều chứa các số thực, sau đó xuất mảng vừa nhập (Lưu ý: Viết chương trình dạng hàm). Yêu cầu:
  • Viết 2 hàm con Nhập và Xuất mảng 1 chiều chứa các số thực.
  • Gọi thực hiện 2 hàm con trong hàm main.
Hướng dẫn: Bước 1: Tạo một Project mới => đặt tên: Mang1C_BaiTapMau1_<Tên sinh viên>, Ví dụ Mang1C_BaiTapMau1_NguyenVanTeo Bước 2: Khai báo thêm các thư viện cơ bản cho chương trình. #include <conio.h> #include <stdio.h> Bước 3: Khai báo hằng số cho chương trình. #define MAXSIZE 1000 Bước 4: Viết các khai báo nguyên mẫu hàm cho chương trình như sau: void NhapMang1C_SoThuc(float a[], int &n); void XuatMang1C_SoThuc(float a[], int n); Bước 5: Viết hàm main để thực thi chương trình. void main() { float A[MAXSIZE]; int N; NhapMang1C_SoThuc(A, N); printf(“\nNoi dung cua mang la: “); XuatMang1C_SoThuc(A, N); _getch(); } Bước 6: Viết các định nghĩa hàm cần thiết cho chương trình như sau: void NhapMang1C_SoThuc(float a[], int &n) { printf(“Cho biet so phan tu cua mang: “); scanf_s(“%d”, &n); for(int i=0; i<n; i++) { printf(“Gia tri phan tu a[%d]=”, i); scanf_s(“%f”, &a[i]); } } //======================================================================= void XuatMang1C_SoThuc(float a[], int n) { for(int i=0; i<n; i++) printf(“%4f”, a[i]); }

Bài tập: Cho một mảng 1 chiều chứa các số nguyên. Hãy viết một chương trình tổng hợp dạng hàm với yêu cầu sau:

1 Tạo một mảng 1 chiều chứa các số nguyên. 2 Xuất một mảng 1 chiều chứa các số nguyên. 3 Tính tổng các giá trị mảng. 4 Tính giá trị trung bình các phần tử trong mảng. 5 Tìm giá trị lớn nhất trong mảng. 6 Tính tổng chẵn trong mảng. 7 Tìm số chẵn lớn nhất trong mảng. 8 Tìm số nguyên tố nhỏ nhất trong mảng. 9 Tìm vị trị của giá trị x trong mảng, x nhập từ phím. 10 Tìm vị trí phần tử nhỏ nhất trong mảng. 11 Đếm phần tử dương trong mảng. 12 Đếm số lần phần tử x xuất hiện trong mảng. 13 Đếm số nguyên tố trong mảng. 14 Xuất ra danh sách các phần tử ở vị trí chẵn trong mảng. 15 Tìm “vị trí của giá trị chẵn đầu tiên” trong mảng 1 chiều các số nguyên. Nếu mảng không có giá trị chẵn nào thì trả về -1. 16 Đảo ngược các giá trị mảng. 17 Kiểm tra tính đối xứng của mảng. Nếu mảng không đối xứng thì trả về -1. 18 Viết hàm tìm giá trị phần tử xuất hiện nhiều nhất trong mảng, nếu có nhiều phần tử có số lần xuất hiện bằng nhau thì xuất phần tử đầu tiên. 19 Viết hàm kiểm tra mảng có phải là mảng tăng không. Xem thêm các bài viết sau
  1. Nhập xuất mảng một chiều
  2. Thêm/Xóa phần tử trên mảng một chiều
  3. Tìm giá trị lớn nhất/nhỏ nhất trong mảng

RELATED ARTICLESMORE FROM AUTHOR

C/C++

Sự khác nhau giữa Inline function và Macro trong C

C/C++

Trong ngôn ngữ C/C++ có bao nhiêu vùng nhớ (Memory layout)

C/C++

Cấu trúc dữ liệu danh sách nhân viên

C/C++

Tổng quan File trong C

C/C++

Cấu trúc kiểu dữ liệu sinh viên

C/C++

Cấu trúc mô tả một điểm trên tọa độ xOy

LEAVE A REPLY Cancel reply

Log in to leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Danh sách các bài học

Các kiểu dữ liệu cơ bản trong ngôn ngữ C/C++

Mr Good - April 16, 2016 0

Hướng dẫn Tạo Project Visual C++ trong Visual Studio 2012

April 16, 2016

Biến-Hằng-Câu lệnh và biểu thức trong C/C++

April 16, 2016

Cấu trúc IF-ELSE

April 16, 2016

Cấu trúc switch – case

April 16, 2016

Vòng lặp For

April 16, 2016

Cấu trúc While, Do-while

April 16, 2016

Cách sử dụng hàm trong lập trình

April 16, 2016

Mảng một chiều

April 16, 2016 Load more

Bài viết mới nhất

Download

Download Cisco Packet Tracer

Windows 10

Hướng dẫn cài đặt webserver trên localhost để chạy wordpress

HPE

Hướng dẫn cấu hình IP ILO máy chủ HP DL380 Gen10

CentOS

CentOS 8 – Giới thiệu về hệ điều hành Linux (P1)

Load more © Copyright 2016, All Rights Reserved. Donations are always appreciated! MEW: 0x296f1a39d5Ca3cb83C76724eA38af3B90B90109D MORE STORIES

Giải thuật Dijkstra

Võ Tình Thương - January 4, 2017 0

Tổng quan về Microsoft Word

Mr Good - April 17, 2016 0

Từ khóa » Ví Dụ Về Mảng 1 Chiều