Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Em không đọc được ma trận từ file ai giúp em với ạ

  1. #1
    Ngày gia nhập
    12 2018
    Bài viết
    5

    Question Em không đọc được ma trận từ file ai giúp em với ạ

    Em có tạo ra một file text là matran.txt như này
    3
    3
    1 2 3
    2 3 4
    3 4 5
    và đoạn code của em để đọc nó làNhưng mà lúc em chạy thì không có gì hiện lên màn hình console em chưa biết em sai chỗ nào ai có thể chỉ giúp em với ạ

    Code:
    #include<stdio.h>
    int main()
    {
    	FILE *f;
    	f=fopen("matran.txt","r");
    	int m[20][20];
    	int i,j,hang,cot;
    	fscanf(f,"%d",&hang);
    	fscanf(f,"%d",&cot);
    	for(i=1;i<=hang;i++)
    	  for(j=1;j<=cot;j++){
    	  	 fscanf(f,"%d",&m[i][j]);
    	  }
    	   
    	fclose(f);
    }

  2. #2
    Ngày gia nhập
    07 2018
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi triutuat Xem bài viết
    Em có tạo ra một file text là matran.txt như này
    3
    3
    1 2 3
    2 3 4
    3 4 5
    và đoạn code của em để đọc nó làNhưng mà lúc em chạy thì không có gì hiện lên màn hình console em chưa biết em sai chỗ nào ai có thể chỉ giúp em với ạ

    Code:
    #include<stdio.h>
    int main()
    {
    	FILE *f;
    	f=fopen("matran.txt","r");
    	int m[20][20];
    	int i,j,hang,cot;
    	fscanf(f,"%d",&hang);
    	fscanf(f,"%d",&cot);
    	for(i=1;i<=hang;i++)
    	  for(j=1;j<=cot;j++){
    	  	 fscanf(f,"%d",&m[i][j]);
    	  }
    	   
    	fclose(f);
    }
    - Sau khi nhập hàng cột, fscanf bạn thử đưa 2 giá trị này lên màn hình xem

    - - - Nội dung đã được cập nhật ngày 02-03-2019 lúc 09:17 AM - - -

    mà hình như fscanf chỉ dùng để đọc file thui. bạn muốn nhập hàng cột thì dùng scanf thui

  3. #3
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    428

    Code của bạn chỉ nhập mảng vào bộ nhớ tại m thôi
    Muốn in ra màn hình phải code thêm
    C++ Code:
    1. for(int i=0;i<hang;i++)
    2. {
    3.    for(int j=0;j<cot;j++)
    4.    {
    5.        printf("%d ",m[i,j]);
    6.    }
    7.    printf("\n");
    8. }
    Lưu ý chỉ số mảng từ 0 đến (độ dài -1)
    Và sửa 2 cái for lồng nhau bên trên giống 2 cái for dưới này
    Đã được chỉnh sửa lần cuối bởi khoaph : 02-03-2019 lúc 01:35 PM.

  4. #4
    Ngày gia nhập
    12 2018
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Code của bạn chỉ nhập mảng vào bộ nhớ tại m thôi
    Muốn in ra màn hình phải code thêm
    C++ Code:
    1. for(int i=0;i<hang;i++)
    2. {
    3.    for(int j=0;j<cot;j++)
    4.    {
    5.        printf("%d ",m[i,j]);
    6.    }
    7.    printf("\n");
    8. }
    Lưu ý chỉ số mảng từ 0 đến (độ dài -1)
    Và sửa 2 cái for lồng nhau bên trên giống 2 cái for dưới này
    Của em muốn lấy cái nội dung trong file text kia ra màn hình cơ mà anh chứ nếu code như anh thì là in ma trận ra màn hình như bình thường mất r.

  5. #5
    Ngày gia nhập
    07 2018
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi triutuat Xem bài viết
    Của em muốn lấy cái nội dung trong file text kia ra màn hình cơ mà anh chứ nếu code như anh thì là in ma trận ra màn hình như bình thường mất r.
    1. Bạn chỉ để một dãy số như trên khi đọc nó sẽ lưu vào 1 mảng như sau: mang[] = {3, 3, 1, 2, 3, 2, 3, 4, 3, 4, 5}. khi in ra màn hình sẽ thành 33123234345
    2. Do ma trận có rất nhiều loại, khác nhau về hàng cột, bởi vậy trên cái file *.txt bạn cần để các dấu hiệu sau:
    - Bắt đầu 1 ma trận.
    - Kết thúc một phần tử trên 1 hàng
    - Kết thúc một hàng
    - Kết thúc một ma trận
    3. Phải có các dấu hiệu nhận biết đâu là 1 ma trân thì bạn mới xử lý được

    - - - Nội dung đã được cập nhật ngày 02-03-2019 lúc 02:22 PM - - -

    1. Ví dụ như sau:
    - Bắt đầu 1 ma trận: [
    - Kết thúc 1 phần tử: ,
    - Kết thúc 1 hàng: ;
    - Kết thúc 1 ma trận: ]
    2. Với đoạn ma trân trong file bạn đưa lên có thể viết như sau:
    Code:
    [  3;
       3   ]
    [  1, 2, 3;
       2, 3, 4;
       3, 4, 5;  ]
    trong cái đọc file hình như là nó không nhận dấu "cách-nút space dài dài ý", nên cơ viết trên file cứ các ra cho dễ nhìn

  6. #6
    Ngày gia nhập
    08 2017
    Bài viết
    2,573

    Mặc định Em không đọc được ma trận từ file ai giúp em với ạ

    c/c++ nên đếm từ 0. Khi viết code nên có chú thích - comment

    C Code:
    1. #include<stdio.h>
    2.  
    3. int main(){
    4.     FILE *f;
    5.     f=fopen("matran.txt","r");
    6.     int m[20][20];
    7.     int i,j,hang,cot;
    8.     fscanf(f,"%d",&hang);
    9.     fscanf(f,"%d",&cot);
    10.     //input matrix
    11.     for(i = 0; i < hang; i++)
    12.         for(j = 0; j < cot; j++)
    13.             fscanf(f,"%d",&m[i][j]);
    14.     fclose(f);
    15.     //output matrix
    16.     for(i = 0; i < hang; i++){
    17.         for(j = 0; j < cot; j++)
    18.             printf("%8d ", m[i][j]);
    19.         printf("\n");
    20.     }
    21. }


Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn