Các phần tử trong mảng ở những bài trước đều được ta đưa trực tiếp vào mảng từ bước khai báo mảng. Tuy nhiên ta cũng có thể sử dụng các hàm như: scanf, gets… để thực hiện nhận giá trị người dùng nhập từ bàn phím và chúng gán vào mảng.

1.Cách nhập phần tử vào trong mảng

Chúng ta biết rằng khi khai báo mảng, ta cần chỉ ra được số lượng phần tử của mảng đó. Ví dụ khai báo: int a[5]; (thì số 5 chính là số lượng phần tử của mảng).

Dựa vào số lượng phần tử đó mà ta sẽ sử dụng vòng lặp for cho phù hợp để nhập các phần tử vào mảng một chiều.

Hàm nhập phần tử vào mảng một chiều sẽ được sử dụng vòng lặp for duyệt từ phần tử có chỉ số index = 0 của mảng đến phần tử cuối cùng của mảng là n – 1.

Chú ý: Số n ở đây chính là biến lưu trữ số lượng phần tử của mảng và được người dùng nhập vào từ bàn phím.

Trong vòng lặp for để nhập các phần tử từ index số 0 (chỉ số đầu) đến index n – 1 (chỉ số cuối), ta sẽ sử dụng một số hàm: scanf, gets …

Ví dụ, chương trình dưới đây tôi sẽ nhập n giá trị vào mảng int a[n]. Các giá trị này là các số nguyên nên ở trong vòng lặp for tôi sẽ sử dụng hàm scanf

#include <stdio.h>
int main(){
    //khai bao bien n
    int n;
    printf("NHAP VAO N PHAN TU: ");
    //nhap du lieu va gan vao bien int n
    scanf("%d",&n);
    //sau khi nhap n, khai bao mang int a[n] (mang nay co n phan tu)
    int a[n];
    //dung vong lap for duyet tu vi tri index thu 0 cho den vi tri n - 1 
    for(int i = 0; i <= n - 1; i++){
        //nhap gia tri va gan vao tung phan tu a[i] cua mang
        printf("NHAP A[%d]: ",i);
        scanf("%d",&a[i]);
    }
}

Trương trình trên được viết trực tiếp ở trong hàm main, tuy nhiên nếu bạn đã có kiến thức về hàm và bạn muốn viết chúng ra một hàm khác thì ta có thể viết như sau:

#include <stdio.h>
void Nhap(int a[], int n){
    //dung vong lap for duyet tu vi tri index thu 0 cho den vi tri n - 1 
    for(int i = 0; i <= n - 1; i++){
        //nhap gia tri va gan vao tung phan tu a[i] cua mang
        printf("NHAP A[%d]: ",i);
        scanf("%d",&a[i]);
    }
}
int main(){
    //khai bao bien n
    int n;
    printf("NHAP VAO N PHAN TU: ");
    //nhap du lieu va gan vao bien int n
    scanf("%d",&n);
    //sau khi nhap n, khai bao mang int a[n] (mang nay co n phan tu)
    int a[n];
    //goi ham nhap va truyen vao mang a va so n
    Nhap(a,n);
}

Lưu ý: Hàm void Nhap(int a[], int n) nhận vào int a[] là mảng cần nhập giá trị, và int n là số lượng phần tử cần nhập.

2.Cách xuất các phần tử có trong mảng

Nhập xuất luôn đi đôi với nhau! Trong phần trên ta đã biết cách nhập các phần tử vào trong mảng một chiều, tuy nhiên ta chưa lấy ra được các phần tử đó sau khi nhập vào mảng. Vì thế ta cần xây dựng một chương trình xuất hay lấy ra các phần tử của mảng đó.

Việc xuất phần tử của mảng ra sẽ dễ dàng hơn việc nhập phần tử vào mảng. Ta chỉ cần biết được số lượng phần tử của mảng và sử dụng vòng lặp for cho nó chạy từ chỉ số index = 0 cho đến index = n- 1 của mảng và sử dụng một số hàm printf, scanf để đưa các phần tử có trong mảng ra màn hình.

Ví dụ chương trình dưới đây sẽ xuất ra toàn bộ các phần tử có trong mảng a vừa nhập vào ở phần 1:

#include <stdio.h>
int main(){
    //khai bao bien n
    int n;
    printf("NHAP VAO N PHAN TU: ");
    //nhap du lieu va gan vao bien int n
    scanf("%d",&n);
    //sau khi nhap n, khai bao mang int a[n] (mang nay co n phan tu)
    int a[n];
    //dung vong lap for duyet tu vi tri index thu 0 cho den vi tri n - 1 
    for(int i = 0; i <= n - 1; i++){
        //nhap gia tri va gan vao tung phan tu a[i] cua mang
        printf("NHAP A[%d]: ",i);
        scanf("%d",&a[i]);
    }
    printf("\nPHAN TU SAU KHI NHAP VAO MANG\n");
    //dung vong lap for duyet tu vi tri index thu 0 cho den vi tri n - 1 
    for(int i = 0; i <= n - 1; i++){
        //xuat cac phan tu a[i] co trong mang ra man hinh
        printf("A[%d] = %d \n",i, a[i]);
    }
}

Ta hoàn toàn có thể xây dựng hàm xuất các phần tử trong mảng.Tuy nhiên, trước khi có hàm xuất hay đảm bảo đã có hàm nhập ở trong chương trình!

#include <stdio.h>
void Nhap(int a[], int n){
    //dung vong lap for duyet tu vi tri index thu 0 cho den vi tri n - 1 
    for(int i = 0; i <= n - 1; i++){
        //nhap gia tri va gan vao tung phan tu a[i] cua mang
        printf("NHAP A[%d]: ",i);
        scanf("%d",&a[i]);
    }
}

void Xuat(int a[], int n){
    printf("\nCAC PHAN TU CO TRONG MANG\n");
    for(int i = 0; i <= n - 1; i++){
        // xuat cac phan tu a[i] co trong mang ra man hinh
        printf("A[%d] = %d \n" ,i,a[i]);
    }
}
int main(){
    //khai bao bien n
    int n;
    printf("NHAP VAO N PHAN TU: ");
    //nhap du lieu va gan vao bien int n
    scanf("%d",&n);
    //sau khi nhap n, khai bao mang int a[n] (mang nay co n phan tu)
    int a[n];
    //goi ham nhap va truyen vao mang a va so n
    Nhap(a,n);
    //goi ham xuat
    Xuat(a,n);
}