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: