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

Đề tài: Xuất 1 phần tử trong mảng 2 chiều dùng con trỏ

  1. #1
    Ngày gia nhập
    01 2012
    Bài viết
    10

    Mặc định Xuất 1 phần tử trong mảng 2 chiều dùng con trỏ

    Các anh chị giúp em phần code xuất 1 phần tử trong mảng với. Thanks các anh chị rất nhiều!

    {
    int *a,m,n;

    cout<<"Lan luot nhap so dong, so cot\n";cin>>m>>n;
    a=new int [m*n];
    for(int i=1;i<=m;i++)
    for(int j=1;j<=m;j++)
    cin>>*(a+n*i+j);
    cout<<"\n"<<
    getch();
    }
    Phần code trên của em là cho nhập mảng 2 chiều dùng biến trỏ a

  2. #2
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Khai báo *a có nghĩa con trỏ a là mảng 1 chiều bạn ạ
    bạn xem ví dụ về nhập và xuất mảng 2 chiều nè:
    C++ Code:
    1. #define MX 10
    2. int m[MX][MX];
    3. void taoMT_2(int m[][MX], int &nd, int &nc)
    4. {
    5.     cout <<"\nNhap so dong: ";
    6.     cin >>nd;
    7.     cout <<"\nNhap so cot: ";
    8.     cin >>nc;
    9.     int *p = m[0];
    10.     for (int i=0; i<nd; i++)
    11.     {
    12.         for (int j=0; j<nc; j++)
    13.         {
    14.             cout <<"\nNhap phan tu thu m["<<i+1<<"]["<<j+1<<"]:";
    15.             cin >> *(p + MX*i + j);
    16.         }
    17.         cout <<endl;
    18.     }
    19. }
    20. void xuatMT_2(int m[][MX],int nd,int nc)
    21. {
    22.     int *p = m[0];
    23.     for (int i=0; i<nd; i++)
    24.     {
    25.         for (int j=0; j<nc; j++)
    26.             cout <<setw(3)<< *(p + MX*i + j);
    27.         cout <<endl;
    28.     }
    29.  
    30. }
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  3. #3
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Ở đây dùng con trỏ cho nên dùng công thức để duyệt mảng một chiều như mảng nhiều chiều cũng được.
    Chỉ cần lưu ý ở:
    for(int i=1;i<=m;i++) bắt đầu bằng 0 chứ không phải 1, kết ở m-1 chứ không phải m
    for(int j=1;j<=m;j++) bắt đầu bằng 0 chứ không phải 1, kết ở n-1 chứ không phải m

  4. #4
    Ngày gia nhập
    01 2012
    Bài viết
    10

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Ở đây dùng con trỏ cho nên dùng công thức để duyệt mảng một chiều như mảng nhiều chiều cũng được.
    Chỉ cần lưu ý ở:
    for(int i=1;i<=m;i++) bắt đầu bằng 0 chứ không phải 1, kết ở m-1 chứ không phải m
    for(int j=1;j<=m;j++) bắt đầu bằng 0 chứ không phải 1, kết ở n-1 chứ không phải m
    Nếu bắt đầu bằng 1 thì có vấn đề gì vậy a? Tại thầy em nói chấp nhận đc nên hơi thắc mắc.. mong anh chỉ bảo thêm

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Tôi đã gặp nhiều HS đem lời Thầy/Cô ra nói ngoài ngữ cảnh (taken out of context) rồi cho nên tôi không muốn bàn thêm về lời của Thầy bạn.

    Chỉ nói riêng trường hợp này: mảng đương nhiên phải bắt đầu bằng 0, không bắt đầu bằng 0 không được.

    Đem ma trận vẽ lên giấy thì sẽ tính ra ngay. Không hiểu tại sao HS bây giờ lười việc giấy bút quá, cứ nghĩ là mình có thể tính nhẩm được. Nên nhớ là những người có khả năng tính nhẩm được mảng, ma trận thì đã không cần phải vào diễn đàn mà hỏi những câu hỏi, những lỗi quá căn bản.

Các đề tài tương tự

  1. Bài tập C++ Đếm tần số xuất hiện của các phần tử trong mảng 1 chiều
    Gửi bởi pnst_1811 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 01-05-2013, 01:38 PM
  2. Thống kê tần suất xuất hiện của các phần tử trong mảng 1 chiều?
    Gửi bởi khoadangnguyen trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 19-07-2012, 12:57 PM
  3. Bài tập C làm sao để xuất ra phần tử lõm trong mảng 2 chiều??
    Gửi bởi __cohon__ trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 19-05-2012, 09:37 AM
  4. Xuất phần tử trong mảng 1 chiều và tính tổng bằng C#
    Gửi bởi pnst_1811 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 20-09-2011, 12:11 AM
  5. Lập trình C Tìm phần tử xuất hiện ít nhất trong mảng 1 chiều
    Gửi bởi masterkids trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 21-02-2011, 11:18 PM

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