Nội dung chính
Bài tập C - Nhập ma trận từ file trong C
Đề bài: Viết chương trình C nhập một ma trận từ file trong C.
Lời giải - đọc ma trận cố định
Giả sử chúng ta có một file matran1.txt chứa ma trận 3x2 (cố định) như sau:
1 2 2 3 4 5
Dưới đây là chương trình C để nhập một ma trận từ file trong C:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <stdio.h> main() { FILE *fp; int row, col, i, j; int matrix[10][10]; fp = fopen ( "matran1.txt" , "r" ); row = 3; col = 2; printf ( "So hang cua ma tran: %d\n" , row); printf ( "So cot cua ma tran: %d\n" , col); i = 0; //doc noi dung ma tran while ( fscanf (fp, "%d %d\n" , &matrix[i][0], &matrix[i][1]) != EOF) { i++; } printf ( "\nMa tran: \n" ); for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { printf ( "%d " , matrix[i][j]); } printf ( "\n" ); } fclose (fp); } |
Chạy chương trình C trên cho kết quả như sau:

Lời giải - đọc ma trận không cố định
Giả sử chúng ta có một file matran2.txt chứa ma trận 3x4 như sau:
3 4 1 2 3 4 2 3 4 5 4 5 6 7
Trong đó, dòng đầu tiên là số hàng của ma trận, dòng thứ 2 là số cột của ma trận, các dòng tiếp theo là nội dung ma trận.
Dưới đây là chương trình C để nhập một ma trận từ file trong C:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <stdio.h> main() { FILE *fp; int row, col, i, j; int matrix[10][10]; fp = fopen ( "matran2.txt" , "r" ); // doc so hang cua ma tran fscanf (fp, "%d\n" , &row); // doc so cot cua ma tran fscanf (fp, "%d\n" , &col); printf ( "So hang cua ma tran: %d\n" , row); printf ( "So cot cua ma tran: %d\n" , col); // doc noi dung ma tran for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { fscanf (fp, "%d\n" , &matrix[i][j]); } } printf ( "\nMa tran: \n" ); for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { printf ( "%d " , matrix[i][j]); } printf ( "\n" ); } fclose (fp); } |
Chạy chương trình C trên cho kết quả như sau:
