1. Bài tập nhập xuất ma trận trong C
Bài tập này chúng ta sẽ sử dụng các kiến thức từ ngôn ngữ lập trình C như: cách nhập xuất cơ bản, cách sử dụng mảng hai chiều và cách sử dụng hàm trong ngôn ngữ lập trình C.
Yêu cầu của bài tập đưa ra cho chúng ta là nhập và hiển thị ma trận mxn ra màn hình bằng ngôn ngữ C.
2. Lời giải
Đầu tiên để thực hiện bài toán này chúng ta cần có kiến thức cơ bản về ngôn ngữ lập trình C, các cách nhập xuất cơ bản trong C, mảng hai nhiều trong C và cách sử dụng hàm trong ngôn ngữ lập trình C.
Các bước thực hiện yêu cầu của bài tập nhập và hiển thị ma trận mxn ra màn hình bằng ngôn ngữ C như sau:
Bước 1: Ta khai báo một mảng 2 chều tĩnh số nguyên có tối đa 100 dòng và 100 cột int a[100][100].
Bước 2: Ta khai báo số nguyên int m là số dòng của ma trận với điều kiện m>1 hoặc m<100 nếu không thỏa mãn thì yêu cầu nhập lại m, int n là số cột của ma trận với điều kiện n>1 hoặc n<100 nếu không thỏa mãn thì yêu cầu nhập lại n.
Bước 3: Ta khỏi tạo hàm void Nhap(int a[][100], int m,int n) dùng để nhập dữ liệu từ bàn phím cho mảng. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i<m và mỗi lần i tăng lên một để duyệt các hàng của ma trận, trong vòng for i ta khởi tạo vòng for bắt đầu từ int j =0, kết thúc khi j<n và mỗi lần lặp j tăng lên 1, trong vòng for j thì nhập vào dữ liệu của a[i][j].
Bước 4: Ta khởi tạo hàm void Xuat(int a[][100], int m, int n) dùng để hiển thị dữ liệu từ mảng ra màn hình. Trong hàm ta sử dụng vòng for bắt đầu từ int i = 0 và kết thúc khi i<m và mỗi lần i tăng lên một để duyệt các hàng của ma trận, trong vòng for j ta khởi tạo vòng for bắt đầu từ int j =0, kết thúc khi j<n và mỗi lần lặp j tăng lên 1, trong vòng for j thì ta hiển thị a[i][j] ra màn hình.
Bước 5: Trong hàm main ta gọi 2 hàm Nhap(a,m,n) và Xuat(a,m,n) rồi chạy chương trình.
Chương trình giải bài tập nhập và hiển thị ma trận mxn ra màn hình bằng ngôn ngữ C như sau:
#include<stdio.h> //Ham nhap ma tran void Nhap(int a[][100], int m, int n){ //duyet hang cua ma tran for(int i =0; i< m; i++){ //duyet cot cua ma tran for(int j =0 ; j<n; j++){ printf("Nhap a[%d][%d] = ", i, j); scanf("%d", &a[i][j]);//nhap vao cac phan tu cua ma tran } } } void Xuat(int a[][100], int m, int n){ //duyet hang cua ma tran for(int i =0; i< m; i++){ //duyet cot cua ma tran for(int j =0 ; j<n; j++){ printf("%5d", a[i][j]);//in ma tran ra man hinh } printf("\n"); } } int main(){ int a[100][100];// khai bao ma tran int m,n;// khai bao so hang va so cot do{ printf("Nhap so dong:"); scanf("%d", &m); if(m<1 || m>100) { printf("Nhap lai:"); } }while(m<1 || m>100);//dieu kien neu m<1 hoac m>100 yeu cau nhap lai do{ printf("Nhap so cot:"); scanf("%d", &n); if(n<1 || n>100) { printf("Nhap lai:"); } }while(n<1 || n>100);//dieu kien neu n<1 hoac n>100 yeu cau nhap lai printf("\nNhap ma tran:\n"); Nhap(a,m,n); printf("\nMa tran sau khi nhap la:\n"); Xuat(a,m,n); }
Ví dụ tôi nhập ma trận có 2 dòng 3 cột.
Kết quả:
Nhap so dong:2 Nhap so cot:3Nhap ma tran: Nhap a[0][0] = 1 Nhap a[0][1] = 2 Nhap a[0][2] = 3 Nhap a[1][0] = 4 Nhap a[1][1] = 4 Nhap a[1][2] = 5 Ma tran sau khi nhap la: |
3. Tổng kết
Sau khi làm bài tập này các bạn cần phải hiểu và nắm được những kiến thức sau:
- Cách nhập xuất cơ bản trong ngôn ngữ lập trình C.
- Cách sử dụng hàm trong ngôn ngữ lập trình C.
- Cách sử dụng mảng hai chiều trong ngôn ngữ lập trình C.
- Cách sử dụng vòng lặp for để duyệt các dòng và cột trong mảng hai chiều.