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:
#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:
#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: